Warning, file /include/boost/fusion/view/single_view/detail/deref_impl.hpp was not indexed
or was modified since last indexation (in which case cross-reference links may be missing, inaccurate or erroneous).
0001
0002
0003
0004
0005
0006
0007
0008 #if !defined(BOOST_FUSION_SINGLE_VIEW_DEREF_IMPL_05052005_0258)
0009 #define BOOST_FUSION_SINGLE_VIEW_DEREF_IMPL_05052005_0258
0010
0011 #include <boost/fusion/support/config.hpp>
0012 #include <boost/mpl/int.hpp>
0013 #include <boost/mpl/assert.hpp>
0014 #include <boost/mpl/equal_to.hpp>
0015
0016 namespace boost { namespace fusion
0017 {
0018 struct single_view_iterator_tag;
0019
0020 namespace extension
0021 {
0022 template <typename Tag>
0023 struct deref_impl;
0024
0025 template <>
0026 struct deref_impl<single_view_iterator_tag>
0027 {
0028 template <typename Iterator>
0029 struct apply
0030 {
0031 BOOST_MPL_ASSERT((mpl::equal_to<typename Iterator::position, mpl::int_<0> >));
0032 typedef typename Iterator::value_type type;
0033
0034 BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
0035 static type
0036 call(Iterator const& i)
0037 {
0038 return i.view.val;
0039 }
0040 };
0041 };
0042 }
0043 }}
0044
0045 #endif
0046
0047