File indexing completed on 2025-01-18 09:31:07
0001
0002
0003
0004
0005
0006
0007
0008 #if !defined(BOOST_FUSION_BEGIN_IMPL_31122005_1209)
0009 #define BOOST_FUSION_BEGIN_IMPL_31122005_1209
0010
0011 #include <boost/fusion/support/config.hpp>
0012 #include <boost/fusion/adapted/mpl/mpl_iterator.hpp>
0013 #include <boost/mpl/begin.hpp>
0014 #include <boost/type_traits/remove_const.hpp>
0015
0016 namespace boost { namespace fusion {
0017
0018 struct mpl_sequence_tag;
0019
0020 namespace extension
0021 {
0022 template <typename Tag>
0023 struct begin_impl;
0024
0025 template <>
0026 struct begin_impl<mpl_sequence_tag>
0027 {
0028 template <typename Sequence>
0029 struct apply
0030 {
0031 typedef typename mpl::begin<
0032 typename remove_const<Sequence>::type
0033 >::type iterator;
0034 typedef mpl_iterator<iterator> type;
0035
0036 BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
0037 static type
0038 call(Sequence)
0039 {
0040 return type();
0041 }
0042 };
0043 };
0044 }
0045 }}
0046
0047 #endif