id summary reporter owner description type status milestone component version severity resolution keywords cc 7914 std::tr1::tuple fails to compile in C++11 when defining BOOST_FUSION_DONT_USE_PREPROCESSED_FILES ipapadop@… Joel de Guzman "Test code: {{{ #include #include int a, b; std::tr1::tuple get() { return std::tr1::tuple(std::tr1::ref(a), std::tr1::ref(b)); } int main() { std::tr1::tuple t = get(); return 0; } }}} It fails to compile in C++11 mode and when BOOST_FUSION_DONT_USE_PREPROCESSED_FILES is defined. Same code compiles fine with Boost 1.48 and 1.49 {{{ $ g++ --std=c++11 -DBOOST_FUSION_DONT_USE_PREPROCESSED_FILES test.cc -I /usr/local/boost/boost_1_53_beta/include/ In file included from /usr/local/boost/boost_1_53_beta/include/boost/preprocessor/iteration/detail/iter/forward1.hpp:57:0, from /usr/local/boost/boost_1_53_beta/include/boost/fusion/container/vector/vector10.hpp:87, from /usr/local/boost/boost_1_53_beta/include/boost/fusion/container/vector/vector_fwd.hpp:14, from /usr/local/boost/boost_1_53_beta/include/boost/fusion/container/vector/vector.hpp:10, from /usr/local/boost/boost_1_53_beta/include/boost/fusion/tuple/tuple.hpp:11, from /usr/local/boost/boost_1_53_beta/include/boost/fusion/tuple.hpp:10, from /usr/local/boost/boost_1_53_beta/include/boost/fusion/include/tuple.hpp:10, from /usr/local/boost/boost_1_53_beta/include/boost/tr1/tuple.hpp:58, from test.cc:1: /usr/local/boost/boost_1_53_beta/include/boost/fusion/container/vector/detail/vector_n.hpp: In instantiation of ‘struct boost::fusion::vector_data2’: /usr/local/boost/boost_1_53_beta/include/boost/fusion/container/vector/detail/vector_n.hpp:103:1: required from ‘struct boost::fusion::vector2’ /usr/local/boost/boost_1_53_beta/include/boost/fusion/container/vector/vector.hpp:92:42: required from ‘struct boost::fusion::vector’ /usr/local/boost/boost_1_53_beta/include/boost/fusion/tuple/tuple.hpp:44:12: required from ‘struct boost::fusion::tuple’ test.cc:6:33: required from here /usr/local/boost/boost_1_53_beta/include/boost/fusion/container/vector/detail/vector_n.hpp:57:1: error: ‘boost::fusion::vector_data2::vector_data2(typename boost::fusion::detail::call_param::type, typename boost::fusion::detail::call_param::type) [with T0 = int&; T1 = int&; typename boost::fusion::detail::call_param::type = int&; typename boost::fusion::detail::call_param::type = int&]’ cannot be overloaded /usr/local/boost/boost_1_53_beta/include/boost/fusion/container/vector/detail/vector_n.hpp:53:1: error: with ‘boost::fusion::vector_data2::vector_data2(T0&&, T1&&) [with T0 = int&; T1 = int&]’ /usr/local/boost/boost_1_53_beta/include/boost/fusion/container/vector/detail/vector_n.hpp: In instantiation of ‘struct boost::fusion::vector2’: /usr/local/boost/boost_1_53_beta/include/boost/fusion/container/vector/vector.hpp:92:42: required from ‘struct boost::fusion::vector’ /usr/local/boost/boost_1_53_beta/include/boost/fusion/tuple/tuple.hpp:44:12: required from ‘struct boost::fusion::tuple’ test.cc:6:33: required from here /usr/local/boost/boost_1_53_beta/include/boost/fusion/container/vector/detail/vector_n.hpp:130:1: error: ‘boost::fusion::vector2::vector2(T0&&, T1&&) [with T0 = int&; T1 = int&]’ cannot be overloaded /usr/local/boost/boost_1_53_beta/include/boost/fusion/container/vector/detail/vector_n.hpp:121:1: error: with ‘boost::fusion::vector2::vector2(typename boost::fusion::detail::call_param::type, typename boost::fusion::detail::call_param::type) [with T0 = int&; T1 = int&; typename boost::fusion::detail::call_param::type = int&; typename boost::fusion::detail::call_param::type = int&]’ In file included from /usr/local/boost/boost_1_53_beta/include/boost/preprocessor/iteration/detail/iter/forward1.hpp:52:0, from /usr/local/boost/boost_1_53_beta/include/boost/fusion/container/vector/detail/vector_forward_ctor.hpp:20, from /usr/local/boost/boost_1_53_beta/include/boost/fusion/container/vector/vector.hpp:125, from /usr/local/boost/boost_1_53_beta/include/boost/fusion/tuple/tuple.hpp:11, from /usr/local/boost/boost_1_53_beta/include/boost/fusion/tuple.hpp:10, from /usr/local/boost/boost_1_53_beta/include/boost/fusion/include/tuple.hpp:10, from /usr/local/boost/boost_1_53_beta/include/boost/tr1/tuple.hpp:58, from test.cc:1: /usr/local/boost/boost_1_53_beta/include/boost/fusion/container/vector/vector.hpp: In instantiation of ‘struct boost::fusion::vector’: /usr/local/boost/boost_1_53_beta/include/boost/fusion/tuple/tuple.hpp:44:12: required from ‘struct boost::fusion::tuple’ test.cc:6:33: required from here /usr/local/boost/boost_1_53_beta/include/boost/fusion/container/vector/detail/vector_forward_ctor.hpp:44:5: error: ‘boost::fusion::vector::vector(T0&&) [with T0 = int&; T1 = int&; 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_]’ cannot be overloaded /usr/local/boost/boost_1_53_beta/include/boost/fusion/container/vector/detail/vector_forward_ctor.hpp:36:5: error: with ‘boost::fusion::vector::vector(typename boost::fusion::detail::call_param::type) [with T0 = int&; T1 = int&; 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_; typename boost::fusion::detail::call_param::type = int&]’ In file included from /usr/local/boost/boost_1_53_beta/include/boost/preprocessor/iteration/detail/iter/forward1.hpp:57:0, from /usr/local/boost/boost_1_53_beta/include/boost/fusion/container/vector/detail/vector_forward_ctor.hpp:20, from /usr/local/boost/boost_1_53_beta/include/boost/fusion/container/vector/vector.hpp:125, from /usr/local/boost/boost_1_53_beta/include/boost/fusion/tuple/tuple.hpp:11, from /usr/local/boost/boost_1_53_beta/include/boost/fusion/tuple.hpp:10, from /usr/local/boost/boost_1_53_beta/include/boost/fusion/include/tuple.hpp:10, from /usr/local/boost/boost_1_53_beta/include/boost/tr1/tuple.hpp:58, from test.cc:1: /usr/local/boost/boost_1_53_beta/include/boost/fusion/container/vector/detail/vector_forward_ctor.hpp:44:5: error: ‘boost::fusion::vector::vector(T0&&, T1&&) [with T0 = int&; T1 = int&; 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_]’ cannot be overloaded /usr/local/boost/boost_1_53_beta/include/boost/fusion/container/vector/detail/vector_forward_ctor.hpp:36:5: error: with ‘boost::fusion::vector::vector(typename boost::fusion::detail::call_param::type, typename boost::fusion::detail::call_param::type) [with T0 = int&; T1 = int&; 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_; typename boost::fusion::detail::call_param::type = int&; typename boost::fusion::detail::call_param::type = int&]’ }}} " Bugs closed To Be Determined fusion Boost 1.53.0 Problem fixed