Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-01-18 09:31:07

0001 /*=============================================================================
0002     Copyright (c) 2012-2014 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 #if !defined(BOOST_FUSION_CONVERT_IMPL_10172012_0120)
0008 #define BOOST_FUSION_CONVERT_IMPL_10172012_0120
0009 
0010 #include <boost/tuple/tuple.hpp>
0011 #include <boost/fusion/adapted/boost_tuple/detail/build_cons.hpp>
0012 #include <boost/fusion/sequence/intrinsic/begin.hpp>
0013 #include <boost/fusion/sequence/intrinsic/end.hpp>
0014 
0015 namespace boost { namespace fusion
0016 {
0017     struct boost_tuple_tag;
0018 
0019     namespace extension
0020     {
0021         template <typename T>
0022         struct convert_impl;
0023 
0024         template <>
0025         struct convert_impl<boost_tuple_tag>
0026         {
0027             template <typename Sequence>
0028             struct apply
0029             {
0030                 typedef typename
0031                     detail::build_tuple_cons<
0032                         typename result_of::begin<Sequence>::type
0033                       , typename result_of::end<Sequence>::type
0034                     >
0035                 build_tuple_cons;
0036 
0037                 typedef typename build_tuple_cons::type type;
0038 
0039                 BOOST_FUSION_GPU_ENABLED
0040                 static type
0041                 call(Sequence& seq)
0042                 {
0043                     return build_tuple_cons::call(fusion::begin(seq), fusion::end(seq));
0044                 }
0045             };
0046         };
0047     }
0048 }}
0049 
0050 #endif