File indexing completed on 2025-01-31 09:41:55
0001
0002
0003
0004
0005
0006
0007
0008 #ifndef BOOST_FUSION_REPETITIVE_VIEW_REPETITIVE_VIEW_HPP_INCLUDED
0009 #define BOOST_FUSION_REPETITIVE_VIEW_REPETITIVE_VIEW_HPP_INCLUDED
0010
0011 #include <boost/fusion/support/config.hpp>
0012 #include <boost/type_traits/remove_reference.hpp>
0013 #include <boost/mpl/if.hpp>
0014
0015 #include <boost/fusion/support/is_view.hpp>
0016 #include <boost/fusion/support/category_of.hpp>
0017
0018 #include <boost/fusion/view/repetitive_view/detail/begin_impl.hpp>
0019 #include <boost/fusion/view/repetitive_view/detail/end_impl.hpp>
0020
0021 #ifdef _MSC_VER
0022 # pragma warning(push)
0023 # pragma warning(disable: 4512)
0024 #endif
0025
0026 namespace boost { namespace fusion
0027 {
0028 struct repetitive_view_tag;
0029 struct fusion_sequence_tag;
0030
0031 template<typename Sequence> struct repetitive_view
0032 : sequence_base< repetitive_view<Sequence> >
0033 {
0034 typedef repetitive_view_tag fusion_tag;
0035 typedef fusion_sequence_tag tag;
0036 typedef mpl::true_ is_view;
0037
0038 typedef single_pass_traversal_tag category;
0039
0040 typedef typename boost::remove_reference<Sequence>::type sequence_type;
0041 typedef typename
0042 mpl::if_<traits::is_view<Sequence>, Sequence, sequence_type&>::type
0043 stored_seq_type;
0044
0045 BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
0046 repetitive_view(Sequence& in_seq)
0047 : seq(in_seq) {}
0048
0049 stored_seq_type seq;
0050 };
0051
0052 }}
0053
0054 #ifdef _MSC_VER
0055 # pragma warning(pop)
0056 #endif
0057
0058 #endif