Boost logo

Boost Users :

Subject: [Boost-users] [fusion]simple fusion seq_size fails to compile
From: Larry Evans (cppljevans_at_[hidden])
Date: 2010-05-16 16:43:21


Compilation of attachment 1 with gcc-4.5, produces errors in attachment
2. When the '#if 1' on line 24 is changed to '#if 0', it compiles OK.

What am I doing wrong?

TIA.

-regards,
Larry


/home/evansl/download/gcc/4.5-20100408/install/bin/g++ -c -Wall -ftemplate-depth-300 -O0 -g3 -fno-inline -std=gnu++0x -I/home/evansl/prog_dev/boost-svn/ro/trunk -DTEMPLATE_DEPTH=300 fusion_list_nil_function_specialization.cpp -MMD -o /home/evansl/prog_dev/boost-svn/ro/trunk/sandbox-local/build/gcc4_5n/sandbox/variadic_templates/libs/composite_storage/sandbox/fusion_list_nil_function_specialization.o
In file included from /home/evansl/prog_dev/boost-svn/ro/trunk/boost/fusion/container/list/cons_iterator.hpp:14:0,
                 from /home/evansl/prog_dev/boost-svn/ro/trunk/boost/fusion/container/list/cons.hpp:16,
                 from /home/evansl/prog_dev/boost-svn/ro/trunk/boost/fusion/container/list.hpp:10,
                 from fusion_list_nil_function_specialization.cpp:4:
/home/evansl/prog_dev/boost-svn/ro/trunk/boost/fusion/container/list/detail/next_impl.hpp: In instantiation of 'boost::fusion::extension::next_impl<boost::fusion::cons_iterator_tag>::apply<boost::fusion::cons_iterator<boost::fusion::void_> >':
/home/evansl/prog_dev/boost-svn/ro/trunk/boost/fusion/iterator/next.hpp:52:9: instantiated from 'boost::fusion::result_of::next<boost::fusion::cons_iterator<boost::fusion::void_> >'
/home/evansl/prog_dev/boost-svn/ro/trunk/boost/fusion/iterator/detail/distance.hpp:36:9: instantiated from 'boost::fusion::distance_detail::next_distance<boost::fusion::cons_iterator<boost::fusion::void_>, boost::fusion::cons_iterator<const boost::fusion::nil> >'
/home/evansl/prog_dev/boost-svn/ro/trunk/boost/mpl/eval_if.hpp:38:31: instantiated from 'boost::mpl::eval_if<boost::fusion::result_of::equal_to<boost::fusion::cons_iterator<boost::fusion::void_>, boost::fusion::cons_iterator<const boost::fusion::nil> >, boost::mpl::identity<mpl_::int_<0> >, boost::fusion::distance_detail::next_distance<boost::fusion::cons_iterator<boost::fusion::void_>, boost::fusion::cons_iterator<const boost::fusion::nil> > >'
/home/evansl/prog_dev/boost-svn/ro/trunk/boost/fusion/iterator/detail/distance.hpp:46:5: instantiated from 'boost::fusion::distance_detail::linear_distance<boost::fusion::cons_iterator<boost::fusion::void_>, boost::fusion::cons_iterator<const boost::fusion::nil> >'
/home/evansl/prog_dev/boost-svn/ro/trunk/boost/fusion/iterator/distance.hpp:37:13: instantiated from 'boost::fusion::extension::distance_impl<boost::fusion::cons_iterator_tag>::apply<boost::fusion::cons_iterator<boost::fusion::void_>, boost::fusion::cons_iterator<const boost::fusion::nil> >'
/home/evansl/prog_dev/boost-svn/ro/trunk/boost/fusion/iterator/distance.hpp:66:9: instantiated from 'boost::fusion::result_of::distance<boost::fusion::cons_iterator<boost::fusion::void_>, boost::fusion::cons_iterator<const boost::fusion::nil> >'
/home/evansl/prog_dev/boost-svn/ro/trunk/boost/fusion/view/iterator_range/iterator_range.hpp:33:74: instantiated from 'boost::fusion::iterator_range<boost::fusion::cons_iterator<boost::fusion::void_>, boost::fusion::cons_iterator<const boost::fusion::nil> >'
fusion_list_nil_function_specialization.cpp:25:52: instantiated from 'unsigned int seq_size(const FusionSeq&) [with FusionSeq = boost::fusion::iterator_range<boost::fusion::cons_iterator<const boost::fusion::nil>, boost::fusion::cons_iterator<const boost::fusion::nil> >]'
fusion_list_nil_function_specialization.cpp:25:52: instantiated from 'unsigned int seq_size(const FusionSeq&) [with FusionSeq = boost::fusion::list<int>]'
fusion_list_nil_function_specialization.cpp:35:45: instantiated from here
/home/evansl/prog_dev/boost-svn/ro/trunk/boost/fusion/container/list/detail/next_impl.hpp:37:54: error: invalid use of incomplete type 'struct boost::fusion::extension::next_impl<boost::fusion::cons_iterator_tag>::apply<boost::fusion::cons_iterator<boost::fusion::void_> >::cons_type'
/home/evansl/prog_dev/boost-svn/ro/trunk/boost/fusion/container/list/list_fwd.hpp:15:12: error: forward declaration of 'struct boost::fusion::extension::next_impl<boost::fusion::cons_iterator_tag>::apply<boost::fusion::cons_iterator<boost::fusion::void_> >::cons_type'
/home/evansl/prog_dev/boost-svn/ro/trunk/boost/fusion/container/list/detail/next_impl.hpp:45:17: error: invalid use of incomplete type 'struct boost::fusion::extension::next_impl<boost::fusion::cons_iterator_tag>::apply<boost::fusion::cons_iterator<boost::fusion::void_> >::cons_type'
/home/evansl/prog_dev/boost-svn/ro/trunk/boost/fusion/container/list/list_fwd.hpp:15:12: error: forward declaration of 'struct boost::fusion::extension::next_impl<boost::fusion::cons_iterator_tag>::apply<boost::fusion::cons_iterator<boost::fusion::void_> >::cons_type'

,,,



Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net