File indexing completed on 2025-01-18 09:34:40
0001
0002
0003
0004
0005
0006
0007 #if !defined(FUSION_NEXT_IMPL_05042005_1058)
0008 #define FUSION_NEXT_IMPL_05042005_1058
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 next_impl;
0023
0024 template <>
0025 struct next_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