Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2024-11-16 09:08:51

0001 /*=============================================================================
0002     Copyright (c) 2005-2012 Joel de Guzman
0003     Copyright (c) 2005-2006 Dan Marsden
0004     Copyright (c) 2015 Kohei Takahashi
0005 
0006     Distributed under the Boost Software License, Version 1.0. (See accompanying
0007     file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
0008 ==============================================================================*/
0009 #if !defined(FUSION_CONVERT_IMPL_20061213_2207)
0010 #define FUSION_CONVERT_IMPL_20061213_2207
0011 
0012 #include <boost/fusion/support/config.hpp>
0013 #include <boost/fusion/container/deque/convert.hpp>
0014 #include <boost/fusion/container/deque/deque.hpp>
0015 #include <boost/fusion/sequence/intrinsic/begin.hpp>
0016 #include <boost/fusion/sequence/intrinsic/end.hpp>
0017 
0018 namespace boost { namespace fusion
0019 {
0020     struct deque_tag;
0021 
0022     namespace result_of
0023     {
0024         template <typename Sequence>
0025         struct as_deque;
0026     }
0027 
0028     namespace extension
0029     {
0030         template <typename T>
0031         struct convert_impl;
0032 
0033         template <>
0034         struct convert_impl<deque_tag>
0035         {
0036             template <typename Sequence>
0037             struct apply
0038             {
0039                 typedef result_of::as_deque<Sequence> gen;
0040                 typedef typename gen::type type;
0041 
0042                 BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
0043                 static type call(Sequence& seq)
0044                 {
0045                     return gen::call(fusion::begin(seq)
0046 #if defined(BOOST_FUSION_HAS_VARIADIC_DEQUE)
0047                         , fusion::end(seq)
0048 #endif
0049                     );
0050                 }
0051             };
0052         };
0053     }
0054 }}
0055 
0056 #endif