File indexing completed on 2025-01-18 09:31:08
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010 #ifndef BOOST_FUSION_ADAPTED_STRUCT_DETAIL_BEGIN_IMPL_HPP
0011 #define BOOST_FUSION_ADAPTED_STRUCT_DETAIL_BEGIN_IMPL_HPP
0012
0013 #include <boost/fusion/support/config.hpp>
0014 #include <boost/fusion/iterator/basic_iterator.hpp>
0015
0016 namespace boost { namespace fusion { namespace extension
0017 {
0018 template<typename>
0019 struct begin_impl;
0020
0021 template <>
0022 struct begin_impl<struct_tag>
0023 {
0024 template <typename Seq>
0025 struct apply
0026 {
0027 typedef
0028 basic_iterator<
0029 struct_iterator_tag
0030 , random_access_traversal_tag
0031 , Seq
0032 , 0
0033 >
0034 type;
0035
0036 BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
0037 static type
0038 call(Seq& seq)
0039 {
0040 return type(seq,0);
0041 }
0042 };
0043 };
0044
0045 template <>
0046 struct begin_impl<assoc_struct_tag>
0047 {
0048 template <typename Seq>
0049 struct apply
0050 {
0051 typedef
0052 basic_iterator<
0053 struct_iterator_tag
0054 , assoc_struct_category
0055 , Seq
0056 , 0
0057 >
0058 type;
0059
0060 BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
0061 static type
0062 call(Seq& seq)
0063 {
0064 return type(seq,0);
0065 }
0066 };
0067 };
0068 }}}
0069
0070 #endif