[SEGMENTED_FUSION_V2] tuple<int,float>(12) CTOR call fails

I just updated the version of SEGMENTED_FUSION with: cd \ ~/prog_dev/boost-cvs/ro/boost/sandbox/fusion/SEGMENTED_FUSION_V2/ro/spirit/ cvs -z2 update -P The CVS/TAG file conains: TSEGMENTED_FUSION_V2 I've added: */ro/spirit/libs/fusion/test/sequence/ctor_forwarding_test-construction.hpp with contents: #include <boost/detail/lightweight_test.hpp> #include <boost/fusion/sequence/intrinsic/at.hpp> #if !defined(FUSION_AT) #define FUSION_AT at_c #endif inline void test() { using namespace boost::fusion; FUSION_SEQUENCE<int, float> t4; BOOST_TEST(FUSION_AT<0>(t4) == int()); BOOST_TEST(FUSION_AT<1>(t4) == float()); #if 1 FUSION_SEQUENCE<int, float> t5(12); BOOST_TEST(FUSION_AT<0>(t5) == 12); BOOST_TEST(FUSION_AT<1>(t5) == float()); #endif FUSION_SEQUENCE<int, float> t6(12, 5.5f); BOOST_TEST(FUSION_AT<0>(t6) == 12); BOOST_TEST(FUSION_AT<1>(t6) > 5.4f && FUSION_AT<1>(t6) < 5.6f); } and also added: */ro/spirit/libs/fusion/test/sequence/ctor_forwarding_test-main.hpp with contents: #include <boost/fusion/tuple/tuple.hpp> #define FUSION_SEQUENCE tuple #define FUSION_AT get #include "ctor_forwarding_test-construction.hpp" int main() { test(); return boost::report_errors(); } and modified the */ro/spirit/libs/fusion/test/Jamfile.v2 to just have: #[ run sequence/tuple_construction.cpp : : : : ] [ run sequence/ctor_forwarding_test-main.cpp : : : : ] #[ run sequence/tuple_copy.cpp : : : : ] When I ran `bjam --v2` from the */fusion/test directory, I got: gcc.compile.c++ ../../../../../../../../bin.v2/sandbox/fusion/SEGMENTED_FUSION_V2/ro/spirit/libs /fusion/test/ctor_forwarding_test-main.test/gcc/debug /ctor_forwarding_test-main.o ../../../boost/fusion/sequence/container/vector/detail/vector_forward_ctor.hpp: In constructor 'boost::fusion::vector<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9>::vector(typename boost::fusion::detail::call_param<T>::type) [with T0 = int, T1 = float, T2 = boost::fusion::void_, T3 = boost::fusion::void_, T4 = boost::fusion::void_, T5 = boost::fusion::void_, T6 = boost::fusion::void_, T7 = boost::fusion::void_, T8 = boost::fusion::void_, T9 = boost::fusion::void_]': ../../../boost/fusion/tuple/detail/tuple_forward_ctor.hpp:36: instantiated from 'boost::fusion::tuple<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9>::tuple(typename boost::fusion::detail::call_param<T>::type) [with T0 = int, T1 = float, T2 = boost::fusion::void_, T3 = boost::fusion::void_, T4 = boost::fusion::void_, T5 = boost::fusion::void_, T6 = boost::fusion::void_, T7 = boost::fusion::void_, T8 = boost::fusion::void_, T9 = boost::fusion::void_]' sequence/ctor_forwarding_test-construction.hpp:25: instantiated from here ../../../boost/fusion/sequence/container/vector/detail /vector_forward_ctor.hpp:36: error: no matching function for call to 'boost::fusion::vector2<int, float>::vector2(const int&)' ../../../boost/fusion/sequence/container/vector/detail/vector_n.hpp:93: note: candidates are: boost::fusion::vector2<T0, T1>::vector2(typename boost::fusion::detail::call_param<T>::type, typename boost::fusion::detail::call_param<T0>::type) [with T0 = int, T1 = float] ../../../boost/fusion/sequence/container/vector/detail/vector_n.hpp:90: note: boost::fusion::vector2<T0, T1>::vector2() [with T0 = int, T1 = float] ../../../boost/fusion/sequence/container/vector/detail/vector_n.hpp:80: note: boost::fusion::vector2<int, float>::vector2(const boost::fusion::vector2<int, float>&) "/usr/bin/g++-4.1" -ftemplate-depth-128 -O0 -fno-inline -Wall -g -fPIC -DBOOST_ALL_NO_LIB=1 -I"../../.." -I"../../../../../../../.." -I"../../../../../../../lje" -I"../../../../../../cvs/SEGMENTED_FUSION_V2/ro/spirit" -c -o "../../../../../../../../bin.v2/sandbox/fusion/SEGMENTED_FUSION_V2/ro /spirit/libs/fusion/test/ctor_forwarding_test-main.test/gcc/debug /ctor_forwarding_test-main.o" "sequence/ctor_forwarding_test-main.cpp" ...failed gcc.compile.c++ ../../../../../../../../bin.v2/sandbox/fusion/SEGMENTED_FUSION_V2/ro /spirit/libs/fusion/test/ctor_forwarding_test-main.test/gcc/debug /ctor_forwarding_test-main.o... ...removing ../../../../../../../../bin.v2/sandbox/fusion/SEGMENTED_FUSION_V2/ro /spirit/libs/fusion/test/ctor_forwarding_test-main.test/gcc/debug /ctor_forwarding_test-main.o ...skipped <p../../../../../../../../bin.v2/sandbox/fusion/SEGMENTED_FUSION_V2/ro /spirit/libs/fusion/test/ctor_forwarding_test-main.test/gcc/debug> ctor_forwarding_test-main for lack of <p../../../../../../../../bin.v2/sandbox/fusion/SEGMENTED_FUSION_V2/ro /spirit/libs/fusion/test/ctor_forwarding_test-main.test/gcc/debug> ctor_forwarding_test-main.o... ...skipped <p../../../../../../../../bin.v2/sandbox/fusion/SEGMENTED_FUSION_V2/ro /spirit/libs/fusion/test/ctor_forwarding_test-main.test/gcc/debug> ctor_forwarding_test-main.run for lack of <p../../../../../../../../bin.v2/sandbox/fusion/SEGMENTED_FUSION_V2/ro /spirit/libs/fusion/test/ctor_forwarding_test-main.test/gcc/debug> ctor_forwarding_test-main... ...removing outdated ../../../../../../../../bin.v2/sandbox/fusion/SEGMENTED_FUSION_V2/ro /spirit/libs/fusion/test/ctor_forwarding_test-main.test/gcc/debug /ctor_forwarding_test-main.test ...failed updating 1 target... ...skipped 3 targets... Compilation exited abnormally with code 1 at Sun Aug 20 14:21:02 However, when I changed the *-construction.hpp file to disable the CTOR call with just the single argument (by changing '#if 1' to '#if 0'), I got: cd /home/evansl/prog_dev/boost-cvs/ro/boost/sandbox/fusion/SEGMENTED_FUSION_V2/ro /spirit/libs/fusion/test/ bjam --v2 warning: Python location is not configured warning: the Boost.Python library won't be built Building Boost.Regex with the optional Unicode/ICU support disabled. Please refer to the Boost.Regex documentation for more information (and if you don't know what ICU is then you probably don't need it). ...patience... ...found 448 targets... ...updating 4 targets... gcc.compile.c++ ../../../../../../../../bin.v2/sandbox/fusion/SEGMENTED_FUSION_V2/ro /spirit/libs/fusion/test/ctor_forwarding_test-main.test/gcc/debug /ctor_forwarding_test-main.o gcc.link ../../../../../../../../bin.v2/sandbox/fusion/SEGMENTED_FUSION_V2/ro /spirit/libs/fusion/test/ctor_forwarding_test-main.test/gcc/debug /ctor_forwarding_test-main testing.capture-output ../../../../../../../../bin.v2/sandbox/fusion/SEGMENTED_FUSION_V2/ro /spirit/libs/fusion/test/ctor_forwarding_test-main.test/gcc/debug /ctor_forwarding_test-main.run **passed** ../../../../../../../../bin.v2/sandbox/fusion/SEGMENTED_FUSION_V2/ro /spirit/libs/fusion/test/ctor_forwarding_test-main.test/gcc/debug /ctor_forwarding_test-main.test ...updated 4 targets... Compilation finished at Sun Aug 20 14:22:34 So, I think there's some problem with the forwarding code. I'll try and track down the problem, but please let me knnow if I'm missing something. -thanks, Larry
participants (1)
-
Larry Evans