Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-01-18 09:34:40

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(FUSION_ADVANCE_IMPL_09172005_1156)
0008 #define FUSION_ADVANCE_IMPL_09172005_1156
0009 
0010 namespace boost { namespace fusion
0011 {
0012     struct vector_iterator_tag;
0013 
0014     template <typename Vector, int N>
0015     struct vector_iterator;
0016 
0017     namespace extension
0018     {
0019         template <typename Tag>
0020         struct advance_impl;
0021 
0022         template <>
0023         struct advance_impl<vector_iterator_tag>
0024         {
0025             template <typename Iterator, typename N>
0026             struct apply
0027             {
0028                 typedef typename Iterator::index index;
0029                 typedef typename Iterator::vector vector;
0030                 typedef vector_iterator<vector, index::value+N::value> type;
0031 
0032                 BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
0033                 static type
0034                 call(Iterator const& i)
0035                 {
0036                     return type(i.vec);
0037                 }
0038             };
0039         };
0040     }
0041 }}
0042 
0043 #endif