
Hello, We are having trouble building boost_fusion version 1.61 with Intel compiler (version 17.0) on Linux, and on Windows with vs2015 (and other versions of visual studio). The problem can be fixed if I made this change to boost/fusion/container/vector/detail/config.hpp : // Sometimes, MSVC 12 shows compile error with std::size_t of template parameter . #if BOOST_WORKAROUND(BOOST_MSVC, BOOST_TESTED_AT(1800)) \ || BOOST_INTEL /* add this line */ # if defined(BOOST_FUSION_HAS_VARIADIC_VECTOR) # undef BOOST_FUSION_HAS_VARIADIC_VECTOR # endif #endif Symptom on Windows: ile ..\..\..\bin.v2\libs\fusion\test\fold.test\cc848a939769f1f7cf08091b8a228ddb\algorithm\fold.obj.rsp "algorithm\fold.cpp" -Fo"..\..\..\bin.v2\libs\fusion\test\fold.test\cc848a939769f1f7cf08091b8a228ddb\algorithm\fold.obj" -TP /Z7 /Od /Ob0 /W3 /GR /MDd /Zc:forScope /Zc:wchar_t /nologo /Qwn5 /Qwd985 -Qoption,c,--arg_dep_lookup /Qvc14 -Qpchi- /wd4675 /EHs -c -DBOOST_ALL_NO_LIB=1 "-I..\..\.." compile-c-c++ ..\..\..\bin.v2\libs\fusion\test\fold.test\cc848a939769f1f7cf08091b8a228ddb\algorithm\fold.obj icl @"..\..\..\bin.v2\libs\fusion\test\fold.test\cc848a939769f1f7cf08091b8a228ddb\algorithm\fold.obj.rsp" fold.cpp ../../../boost/fusion/container/vector/vector.hpp(71): error: namespace "boost::fusion::vector_detail::result_of" has no member "value_at_c" : boost::is_convertible<Sequence, typename result_of::value_at_c<This, 0>::type> ^ detected during: instantiation of class "boost::fusion::vector_detail::is_convertible_to_first<Sequence, This, <unnamed>> [with Sequence=int, This=boost::fusion::vector<int>, <unnamed>=1]" at line 305 instantiation of "boost::fusion::vector<T...>::vector(U &&...) [with T=<int>, U=<int>]" at line 159 of "algorithm\fold.cpp" Symptom on Linux: The original failure on Linux (zip.test in boost_fusion) "icpc" -c -xc++ -O0 -g -w1 -inline-level=0 -fPIC -m64 -DBOOST_ALL_NO_LIB=1 -I"../../.." -c -o "../../../bin.v2/libs/fusion/test/zip.test/intl-lnx/dbg/algorithm/zip.o" "algorithm/zip.cpp" ../../../boost/fusion/container/vector/vector.hpp(230): error: pack "U" does not have the same number of elements as "I" : store<I, T>(std::forward<U>(var))... ^ detected during: instantiation of "boost::fusion::vector_detail::vector_data<boost::fusion::detail::index_sequence<I...>, T...>::vector_data(boost::fusion::vector_detail::each_elem, U &&...) [with I=<0UL, 1UL>, T=<boost::fusion::vector_iterator<const boost::fusion::vector<int, int>, 0>, boost::fusion::vector_iterator<const boost::fusion::vector<char, char>, 0>>, U=<const boost::fusion::transform_view<const boost::fusion::vector<const boost::fusion::vector<int, int> &, const boost::fusion::vector<char, char> &>, boost::fusion::detail::poly_begin, boost::fusion::void_> &>]" at line 306 instantiation of "boost::fusion::vector<T...>::vector(U &&...) [with T=<boost::fusion::vector_iterator<const boost::fusion::vector<int, int>, 0>, boost::fusion::vector_iterator<const boost::fusion::vector<char, char>, 0>>, U=<const boost::fusion::transform_view<const boost::fusion::vector<const boost::fusion::vector<int, int> &, const boost::fusion::vector<char, char> &>, boost::fusion::detail::poly_begin, boost::fusion::void_> &>]" at line 41 of "../../../boost/fusion/view/zip_view/zip_view_iterator.hpp" Thanks and regards, Melanie Blower (I work for Intel on the Intel C++ compiler)