Back to home page

EIC code displayed by LXR

 
 

    


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

0001 /*=============================================================================
0002     Copyright (c) 2010 Christopher Schmidt
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 
0008 #ifndef BOOST_FUSION_ADAPTED_ARRAY_END_IMPL_HPP
0009 #define BOOST_FUSION_ADAPTED_ARRAY_END_IMPL_HPP
0010 
0011 #include <boost/fusion/support/config.hpp>
0012 #include <boost/fusion/iterator/basic_iterator.hpp>
0013 #include <boost/type_traits/rank.hpp>
0014 #include <boost/type_traits/extent.hpp>
0015 
0016 namespace boost { namespace fusion { namespace extension
0017 {
0018     template <typename>
0019     struct end_impl;
0020 
0021     template <>
0022     struct end_impl<po_array_tag>
0023     {
0024         template <typename Seq>
0025         struct apply
0026         {
0027             typedef
0028                 basic_iterator<
0029                     po_array_iterator_tag
0030                   , random_access_traversal_tag
0031                   , Seq
0032                   , extent<Seq,rank<Seq>::value-1>::value
0033                 >
0034             type;
0035 
0036             BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
0037             static type
0038             call(Seq& seq)
0039             {
0040                 return type(seq,0);
0041             }
0042         };
0043     };
0044 }}}
0045 
0046 #endif