Back to home page

EIC code displayed by LXR

 
 

    


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

0001 /*=============================================================================
0002     Copyright (c) 2001-2011 Joel de Guzman
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_END_IMPL_09272006_0721)
0008 #define BOOST_FUSION_END_IMPL_09272006_0721
0009 
0010 #include <boost/fusion/support/config.hpp>
0011 #include <boost/fusion/adapted/boost_tuple/boost_tuple_iterator.hpp>
0012 #include <boost/mpl/if.hpp>
0013 #include <boost/type_traits/is_const.hpp>
0014 
0015 namespace boost { namespace tuples
0016 {
0017     struct null_type;
0018 }}
0019     
0020 namespace boost { namespace fusion
0021 {
0022     struct boost_tuple_tag;
0023 
0024     namespace extension
0025     {
0026         template <typename Tag>
0027         struct end_impl;
0028 
0029         template <>
0030         struct end_impl<boost_tuple_tag>
0031         {
0032             template <typename Sequence>
0033             struct apply 
0034             {
0035                 typedef 
0036                     boost_tuple_iterator<
0037                         typename mpl::if_<
0038                             is_const<Sequence>
0039                           , tuples::null_type const
0040                           , tuples::null_type
0041                         >::type
0042                     > 
0043                 type;
0044 
0045                 BOOST_FUSION_GPU_ENABLED
0046                 static type
0047                 call(Sequence& seq)
0048                 {
0049                     return type(seq);
0050                 }
0051             };
0052         };
0053     }
0054 }}
0055 
0056 #endif