X-Git-Url: https://git.donarmstrong.com/?p=rsem.git;a=blobdiff_plain;f=boost%2Ffusion%2Fcontainer%2Fvector%2Fdetail%2Fvector_forward_ctor.hpp;fp=boost%2Ffusion%2Fcontainer%2Fvector%2Fdetail%2Fvector_forward_ctor.hpp;h=2607321f2211d9f122d6745976a5ee85a715bd7f;hp=e4680bb8bb4f217d60227c04bbbde8b85d8c2e63;hb=2d71eb92104693ca9baa5a2e1c23eeca776d8fd3;hpb=da57529b92adbb7ae74a89861cb39fb35ac7c62d diff --git a/boost/fusion/container/vector/detail/vector_forward_ctor.hpp b/boost/fusion/container/vector/detail/vector_forward_ctor.hpp index e4680bb..2607321 100644 --- a/boost/fusion/container/vector/detail/vector_forward_ctor.hpp +++ b/boost/fusion/container/vector/detail/vector_forward_ctor.hpp @@ -1,5 +1,5 @@ /*============================================================================= - Copyright (c) 2001-2006 Joel de Guzman + Copyright (c) 2001-2011 Joel de Guzman Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) @@ -12,11 +12,14 @@ #include #include +#define FUSION_FORWARD_CTOR_FORWARD(z, n, _) std::forward(_##n) + #define BOOST_PP_FILENAME_1 \ #define BOOST_PP_ITERATION_LIMITS (1, FUSION_MAX_VECTOR_SIZE) #include BOOST_PP_ITERATE() +#undef FUSION_FORWARD_CTOR_FORWARD #endif #else // defined(BOOST_PP_IS_ITERATING) /////////////////////////////////////////////////////////////////////////////// @@ -34,6 +37,15 @@ N, typename detail::call_param::type _)) : vec(BOOST_PP_ENUM_PARAMS(N, _)) {} +#if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) + template +#if N == 1 + explicit +#endif + vector(BOOST_PP_ENUM_BINARY_PARAMS(N, U, && _)) + : vec(BOOST_PP_ENUM(N, FUSION_FORWARD_CTOR_FORWARD, _)) {} +#endif + #undef N #endif // defined(BOOST_PP_IS_ITERATING)