Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-12-16 09:46:24

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