File indexing completed on 2025-12-16 09:45:46
0001
0002
0003
0004
0005
0006
0007
0008 #ifndef BOOST_FUSION_ADAPTED_ARRAY_DEREF_IMPL_HPP
0009 #define BOOST_FUSION_ADAPTED_ARRAY_DEREF_IMPL_HPP
0010
0011 #include <boost/fusion/support/config.hpp>
0012 #include <boost/type_traits/add_reference.hpp>
0013 #include <boost/type_traits/remove_extent.hpp>
0014
0015 namespace boost { namespace fusion { namespace extension
0016 {
0017 template <typename>
0018 struct deref_impl;
0019
0020 template <>
0021 struct deref_impl<po_array_iterator_tag>
0022 {
0023 template <typename It>
0024 struct apply
0025 {
0026 typedef typename
0027 add_reference<
0028 typename remove_extent<typename It::seq_type>::type
0029 >::type
0030 type;
0031
0032 BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
0033 static type
0034 call(It const& it)
0035 {
0036 return (*it.seq)[It::index::value];
0037 }
0038 };
0039 };
0040 }}}
0041
0042 #endif