File indexing completed on 2025-01-18 09:33:20
0001
0002
0003
0004
0005
0006
0007 #ifndef FUSION_LIST_MAIN_10262014_0447
0008 #define FUSION_LIST_MAIN_10262014_0447
0009
0010 #include <boost/config.hpp>
0011 #include <boost/fusion/support/config.hpp>
0012 #include <boost/fusion/container/list/list_fwd.hpp>
0013
0014
0015
0016
0017 #if !defined(BOOST_FUSION_HAS_VARIADIC_LIST)
0018 # include <boost/fusion/container/list/detail/cpp03/list_to_cons.hpp>
0019 #else
0020
0021
0022
0023
0024 #include <boost/fusion/container/list/cons.hpp>
0025 #include <boost/fusion/support/detail/access.hpp>
0026
0027 namespace boost { namespace fusion { namespace detail
0028 {
0029 template <typename ...T>
0030 struct list_to_cons;
0031
0032 template <>
0033 struct list_to_cons<>
0034 {
0035 typedef nil_ type;
0036
0037 BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
0038 static type call() { return type(); }
0039 };
0040
0041 template <typename Head, typename ...Tail>
0042 struct list_to_cons<Head, Tail...>
0043 {
0044 typedef Head head_type;
0045 typedef list_to_cons<Tail...> tail_list_to_cons;
0046 typedef typename tail_list_to_cons::type tail_type;
0047
0048 typedef cons<head_type, tail_type> type;
0049
0050 BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
0051 static type
0052 call(typename detail::call_param<Head>::type _h,
0053 typename detail::call_param<Tail>::type ..._t)
0054 {
0055 return type(_h, tail_list_to_cons::call(_t...));
0056 }
0057 };
0058 }}}
0059
0060 #endif
0061 #endif