[fusion] g++-4.6, deque, and c++0x compile error

classic Classic list List threaded Threaded
6 messages Options
Reply | Threaded
Open this post in threaded view
|

[fusion] g++-4.6, deque, and c++0x compile error

Karsten Ahnert-2
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?


_______________________________________________
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost
Reply | Threaded
Open this post in threaded view
|

Re: [fusion] g++-4.6, deque, and c++0x compile error

Olaf van der Spek-3
On Wed, Jul 4, 2012 at 10:54 AM, Karsten Ahnert
<[hidden email]> 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?

Olaf

_______________________________________________
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost
Reply | Threaded
Open this post in threaded view
|

Re: [fusion] g++-4.6, deque, and c++0x compile error

Joel de Guzman-2
On 7/4/2012 4:57 PM, Olaf van der Spek wrote:

> On Wed, Jul 4, 2012 at 10:54 AM, Karsten Ahnert
> <[hidden email]> 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?

Boost trunk? Can't reproduce the problem here.

gcc version 4.6.1

Flags:
  -Wall -mconsole -ftemplate-depth-512 -fpermissive -DNDEBUG -DNDEBUG -O3
-finline-functions -funroll-loops -Wfatal-errors -std=c++0x -static-libgcc -static-libstdc++

Regards,
--
Joel de Guzman
http://www.boostpro.com
http://boost-spirit.com






_______________________________________________
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost
Reply | Threaded
Open this post in threaded view
|

Re: [fusion] g++-4.6, deque, and c++0x compile error

Karsten Ahnert-2
In reply to this post by Olaf van der Spek-3
On 07/04/2012 10:57 AM, Olaf van der Spek wrote:

> On Wed, Jul 4, 2012 at 10:54 AM, Karsten Ahnert
> <[hidden email]> 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’


_______________________________________________
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost
Reply | Threaded
Open this post in threaded view
|

Re: [fusion] g++-4.6, deque, and c++0x compile error

Karsten Ahnert-2
In reply to this post by Joel de Guzman-2
On 07/04/2012 11:02 AM, Joel de Guzman wrote:

> On 7/4/2012 4:57 PM, Olaf van der Spek wrote:
>> On Wed, Jul 4, 2012 at 10:54 AM, Karsten Ahnert
>> <[hidden email]> 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?
>
> Boost trunk? Can't reproduce the problem here.

Its boost_1_50_0 in trunk the problem does not occur. So I think it is
already fixed. Sorry for the noise.


>
> gcc version 4.6.1
>
> Flags:
>  -Wall -mconsole -ftemplate-depth-512 -fpermissive -DNDEBUG -DNDEBUG -O3
> -finline-functions -funroll-loops -Wfatal-errors -std=c++0x
> -static-libgcc -static-libstdc++
>
> Regards,



_______________________________________________
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost
Reply | Threaded
Open this post in threaded view
|

Re: [fusion] g++-4.6, deque, and c++0x compile error

Joel de Guzman-2
On 7/4/2012 5:08 PM, Karsten Ahnert wrote:

> On 07/04/2012 11:02 AM, Joel de Guzman wrote:
>> On 7/4/2012 4:57 PM, Olaf van der Spek wrote:
>>> On Wed, Jul 4, 2012 at 10:54 AM, Karsten Ahnert
>>> <[hidden email]> 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?
>>
>> Boost trunk? Can't reproduce the problem here.
>
> Its boost_1_50_0 in trunk the problem does not occur. So I think it is
> already fixed. Sorry for the noise.

Nevertheless, this is an unwanted bug in the release :(.
deque is broken on boost_1_50_0 for C++11. Let's hope we have
boost_1_50_1 soon.

Regards,
--
Joel de Guzman
http://www.boostpro.com
http://boost-spirit.com






_______________________________________________
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost