Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-01-18 09:33:20

0001 /*=============================================================================
0002     Copyright (c) 2014-2015 Kohei Takahashi
0003 
0004     Distributed under the Boost Software License, Version 1.0. (See accompanying
0005     file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
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 // Without variadics, we will use the PP version
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 // C++11 interface
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