Boost logo

Boost :

Subject: Re: [boost] [fusion] g++-4.6, deque, and c++0x compile error
From: Karsten Ahnert (karsten.ahnert_at_[hidden])
Date: 2012-07-04 05:03:39


On 07/04/2012 10:57 AM, Olaf van der Spek wrote:
> On Wed, Jul 4, 2012 at 10:54 AM, Karsten Ahnert
> <karsten.ahnert_at_[hidden]> wrote:
>> The following trivial program does not compile with g++-4.6.1 and
>> std=c++0x enabled.
>>
>> #include <boost/fusion/container.hpp>
>>
>> int main( int argc , char *argv[] )
>> {
>> }
>>
>> Seems like a bug, or should I configure something via macros?
>
> What's the error msg?

Here it is:

g++ -I$BOOST_ROOT -std=c++0x fusion_bug.cpp

In file included from
/home/karsten/boost/boost_1_50_0/boost/fusion/container/deque/deque.hpp:43:0,
                 from
/home/karsten/boost/boost_1_50_0/boost/fusion/container/deque.hpp:11,
                 from
/home/karsten/boost/boost_1_50_0/boost/fusion/container.hpp:14,
                 from fusion_bug.cpp:1:
/home/karsten/boost/boost_1_50_0/boost/fusion/container/deque/detail/cpp11_deque_keyed_values.hpp:22:12:
error: redeclared with 2 template parameters
/home/karsten/boost/boost_1_50_0/boost/fusion/container/deque/detail/preprocessed/deque_keyed_values10.hpp:15:12:
note: previous declaration ‘template<class N, class T0, class T1, class
T2, class T3, class T4, class T5, class T6, class T7, class T8, class
T9> struct boost::fusion::detail::deque_keyed_values_impl’ used 11
template parameters
/home/karsten/boost/boost_1_50_0/boost/fusion/container/deque/detail/cpp11_deque_keyed_values.hpp:25:52:
sorry, unimplemented: cannot expand ‘Tail ...’ into a fixed-length
argument list
/home/karsten/boost/boost_1_50_0/boost/fusion/container/deque/detail/cpp11_deque_keyed_values.hpp:45:12:
error: redefinition of ‘struct
boost::fusion::detail::deque_keyed_values_impl<N, boost::fusion::void_,
boost::fusion::void_, boost::fusion::void_, boost::fusion::void_,
boost::fusion::void_, boost::fusion::void_, boost::fusion::void_,
boost::fusion::void_, boost::fusion::void_, boost::fusion::void_>’
/home/karsten/boost/boost_1_50_0/boost/fusion/container/deque/detail/preprocessed/deque_keyed_values10.hpp:17:12:
error: previous definition of ‘struct
boost::fusion::detail::deque_keyed_values_impl<N, boost::fusion::void_,
boost::fusion::void_, boost::fusion::void_, boost::fusion::void_,
boost::fusion::void_, boost::fusion::void_, boost::fusion::void_,
boost::fusion::void_, boost::fusion::void_, boost::fusion::void_>’
/home/karsten/boost/boost_1_50_0/boost/fusion/container/deque/detail/cpp11_deque_keyed_values.hpp:52:12:
error: redeclared with 1 template parameter
/home/karsten/boost/boost_1_50_0/boost/fusion/container/deque/detail/preprocessed/deque_keyed_values10.hpp:114:12:
note: previous declaration ‘template<class T0, class T1, class T2, class
T3, class T4, class T5, class T6, class T7, class T8, class T9> struct
boost::fusion::detail::deque_keyed_values’ used 10 template parameters
/home/karsten/boost/boost_1_50_0/boost/fusion/container/deque/detail/cpp11_deque_keyed_values.hpp:53:58:
sorry, unimplemented: cannot expand ‘Elements ...’ into a fixed-length
argument list
In file included from
/home/karsten/boost/boost_1_50_0/boost/fusion/container/deque.hpp:11:0,
                 from
/home/karsten/boost/boost_1_50_0/boost/fusion/container.hpp:14,
                 from fusion_bug.cpp:1:
/home/karsten/boost/boost_1_50_0/boost/fusion/container/deque/deque.hpp:67:49:
sorry, unimplemented: cannot expand ‘Tail ...’ into a fixed-length
argument list
/home/karsten/boost/boost_1_50_0/boost/fusion/container/deque/deque.hpp:67:52:
error: expected ‘{’ before ‘type’
/home/karsten/boost/boost_1_50_0/boost/fusion/container/deque/deque.hpp:68:7:
error: invalid type in declaration before ‘,’ token
/home/karsten/boost/boost_1_50_0/boost/fusion/container/deque/deque.hpp:68:7:
error: template declaration of ‘int boost::fusion::type’


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk