Modify

Opened 12 years ago

Closed 9 years ago

#588 closed Bugs (fixed)

mpl::remove compile error with gcc 4.1.0

Reported by: eelis Owned by: Aleksey Gurtovoy
Milestone: Component: mpl
Version: None Severity: Problem
Keywords: Cc:

Description

The following four lines fail to compile using gcc
4.1.0 with boost 1.33.1:

  #include <boost/mpl/vector.hpp>
  #include <boost/mpl/remove.hpp>
  template <typename> struct X { struct type {}; };
  typedef boost::mpl::remove<boost::mpl::vector<int>,
X<int>::type>::type T;

Error:

boost/mpl/aux_/preprocessed/gcc/template_arity.hpp: In
instantiation of ‘const int
boost::mpl::aux::template_arity_impl<X<int>::type,
1>::value’:
boost/mpl/aux_/preprocessed/gcc/template_arity.hpp:93:
  instantiated from ‘const int
boost::mpl::aux::template_arity<X<int>::type>::value’
boost/mpl/aux_/preprocessed/gcc/template_arity.hpp:98:
  instantiated from
‘boost::mpl::aux::template_arity<X<int>::type>’
boost/mpl/aux_/preprocessed/gcc/full_lambda.hpp:123:  
instantiated from
‘boost::mpl::lambda<boost::mpl::same_as<X<int>::type>,
mpl_::void_, mpl_::int_<1> >’
boost/mpl/remove_if.hpp:57:   instantiated from
‘boost::mpl::aux::remove_if_impl<boost::mpl::vector<int,
mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na,
mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na,
mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na,
mpl_::na, mpl_::na, mpl_::na, mpl_::na>,
boost::mpl::same_as<X<int>::type>,
boost::mpl::back_inserter<boost::mpl::vector0<mpl_::na>
> >’
boost/mpl/remove.hpp:33:   instantiated from
‘boost::mpl::aux::remove_impl<boost::mpl::vector<int,
mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na,
mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na,
mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na,
mpl_::na, mpl_::na, mpl_::na, mpl_::na>, X<int>::type,
boost::mpl::back_inserter<boost::mpl::vector0<mpl_::na>
> >’
boost/mpl/remove.hpp:48:   instantiated from
‘boost::mpl::remove<boost::mpl::vector<int, mpl_::na,
mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na,
mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na,
mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na,
mpl_::na, mpl_::na, mpl_::na>, X<int>::type, mpl_::na>’
t.cpp:4:   instantiated from here
boost/mpl/aux_/preprocessed/gcc/template_arity.hpp:85:
error: call of overloaded
‘arity_helper(boost::mpl::aux::type_wrapper<X<int>::type>,
boost::mpl::aux::arity_tag<1>)’ is ambiguous
boost/mpl/aux_/preprocessed/gcc/template_arity.hpp:30:
note: candidates are: char (&
boost::mpl::aux::arity_helper(...))[1]
boost/mpl/aux_/preprocessed/gcc/template_arity.hpp:37:
note:                 char (&
boost::mpl::aux::arity_helper(boost::mpl::aux::type_wrapper<F<T1>
>, boost::mpl::aux::arity_tag<1>))[2] [with F = X<
<template-parameter-1-1> >::type, T1 = int]
boost/mpl/aux_/preprocessed/gcc/template_arity.hpp:37:
note:                 char (&
boost::mpl::aux::arity_helper(boost::mpl::aux::type_wrapper<F<T1>
>, boost::mpl::aux::arity_tag<1>))[2] [with F = X<
<template-parameter-1-1> >::type, T1 = int]

The code compiles fine with gcc 4.0.2.

Attachments (0)

Change History (3)

comment:1 Changed 12 years ago by eelis

Logged In: YES 
user_id=832319

The error is caused by the following GCC bug:
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=27689

comment:2 Changed 10 years ago by Aleksey Gurtovoy

Severity: Problem

comment:3 Changed 9 years ago by Aleksey Gurtovoy

Resolution: Nonefixed
Status: assignedclosed

According to http://gcc.gnu.org/bugzilla/show_bug.cgi?id=27689#c7, the bug has been fixed in GCC 4.1.2.

I'm marking this as closed.

Modify Ticket

Change Properties
Set your email in Preferences
Action
as closed The owner will remain Aleksey Gurtovoy.
The resolution will be deleted.

Add Comment


E-mail address and name can be saved in the Preferences.

 
Note: See TracTickets for help on using tickets.