diff --git a/include/boost/fusion/container/generation/make_vector.hpp b/include/boost/fusion/container/generation/make_vector.hpp index df63ded6..1c8a86c8 100644 --- a/include/boost/fusion/container/generation/make_vector.hpp +++ b/include/boost/fusion/container/generation/make_vector.hpp @@ -19,6 +19,8 @@ /////////////////////////////////////////////////////////////////////////////// #include +#include +#include namespace boost { namespace fusion { @@ -47,7 +49,9 @@ namespace boost { namespace fusion typedef typename trim_void< vector<> - , typename detail::as_fusion_element::type... + , typename detail::as_fusion_element< + typename remove_reference::type + >::type... >::type type; }; @@ -56,9 +60,9 @@ namespace boost { namespace fusion template BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED inline typename result_of::make_vector::type - make_vector(T const&... arg) + make_vector(T&&... arg) { - return typename result_of::make_vector::type(arg...); + return typename result_of::make_vector::type(std::forward(arg)...); } }}