File indexing completed on 2025-12-16 09:45:47
0001
0002
0003
0004
0005
0006
0007
0008
0009 #if !defined(BOOST_FUSION_STD_ARRAY_END_OF_IMPL_01062013_1700)
0010 #define BOOST_FUSION_STD_ARRAY_END_OF_IMPL_01062013_1700
0011
0012 #include <boost/fusion/adapted/std_array/std_array_iterator.hpp>
0013 #include <boost/fusion/adapted/std_array/detail/array_size.hpp>
0014 #include <boost/type_traits/remove_const.hpp>
0015
0016 namespace boost { namespace fusion {
0017
0018 struct std_array_tag;
0019
0020 namespace extension
0021 {
0022 template <typename Tag>
0023 struct end_impl;
0024
0025 template <>
0026 struct end_impl<std_array_tag>
0027 {
0028 template <typename Sequence>
0029 struct apply
0030 {
0031 typedef typename remove_const<Sequence>::type seq_type;
0032 static int const size = std_array_size<seq_type>::value;
0033 typedef std_array_iterator<Sequence, size> type;
0034
0035 static type
0036 call(Sequence& v)
0037 {
0038 return type(v);
0039 }
0040 };
0041 };
0042 }
0043 }}
0044
0045 #endif