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