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_implboost::fusion::cons_iterator_tag::applyboost::fusion::void_ >':
/home/evansl/prog_dev/boost-svn/ro/trunk/boost/fusion/iterator/next.hpp:52:9: instantiated from 'boost::fusion::result_of::nextboost::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_distanceboost::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_ifboost::fusion::void_, boost::fusion::cons_iterator<const boost::fusion::nil> >, boost::mpl::identity >, boost::fusion::distance_detail::next_distanceboost::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_distanceboost::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_implboost::fusion::cons_iterator_tag::applyboost::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::distanceboost::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_rangeboost::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]'
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_implboost::fusion::cons_iterator_tag::applyboost::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_implboost::fusion::cons_iterator_tag::applyboost::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_implboost::fusion::cons_iterator_tag::applyboost::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_implboost::fusion::cons_iterator_tag::applyboost::fusion::void_ >::cons_type'
,,,