File indexing completed on 2025-12-15 09:48:23
0001
0002
0003
0004
0005
0006
0007 #ifndef FUSION_MAKE_VECTOR_11112014_2252
0008 #define FUSION_MAKE_VECTOR_11112014_2252
0009
0010 #include <boost/fusion/support/config.hpp>
0011 #include <boost/fusion/container/vector/vector.hpp>
0012
0013 #if !defined(BOOST_FUSION_HAS_VARIADIC_VECTOR)
0014 # include <boost/fusion/container/generation/detail/pp_make_vector.hpp>
0015 #else
0016
0017
0018
0019
0020
0021 #include <boost/fusion/support/detail/as_fusion_element.hpp>
0022 #include <boost/type_traits/remove_reference.hpp>
0023 #include <boost/type_traits/remove_const.hpp>
0024 #include <utility>
0025
0026 namespace boost { namespace fusion
0027 {
0028 namespace result_of
0029 {
0030 template <typename ...T>
0031 struct make_vector
0032 {
0033 typedef vector<
0034 typename detail::as_fusion_element<
0035 typename remove_const<
0036 typename remove_reference<T>::type
0037 >::type
0038 >::type...
0039 > type;
0040 };
0041 }
0042
0043 template <typename ...T>
0044 BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
0045 inline typename result_of::make_vector<T...>::type
0046 make_vector(T&&... arg)
0047 {
0048 return typename result_of::make_vector<T...>::type(std::forward<T>(arg)...);
0049 }
0050 }}
0051
0052
0053 #endif
0054 #endif
0055