Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-12-16 09:49:45

0001 /*=============================================================================
0002     Copyright (c) 2009 Hartmut Kaiser
0003 
0004     Distributed under the Boost Software License, Version 1.0. (See accompanying 
0005     file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
0006 ==============================================================================*/
0007 #if !defined(BOOST_FUSION_NVIEW_ITERATOR_SEP_23_2009_0948PM)
0008 #define BOOST_FUSION_NVIEW_ITERATOR_SEP_23_2009_0948PM
0009 
0010 #include <boost/fusion/support/config.hpp>
0011 #include <boost/fusion/support/iterator_base.hpp>
0012 #include <boost/fusion/support/category_of.hpp>
0013 #include <boost/fusion/sequence/intrinsic/begin.hpp>
0014 #include <boost/fusion/sequence/intrinsic/end.hpp>
0015 
0016 #include <boost/fusion/view/nview/detail/size_impl.hpp>
0017 #include <boost/fusion/view/nview/detail/begin_impl.hpp>
0018 #include <boost/fusion/view/nview/detail/end_impl.hpp>
0019 #include <boost/fusion/view/nview/detail/deref_impl.hpp>
0020 #include <boost/fusion/view/nview/detail/value_of_impl.hpp>
0021 #include <boost/fusion/view/nview/detail/next_impl.hpp>
0022 #include <boost/fusion/view/nview/detail/prior_impl.hpp>
0023 #include <boost/fusion/view/nview/detail/at_impl.hpp>
0024 #include <boost/fusion/view/nview/detail/value_at_impl.hpp>
0025 #include <boost/fusion/view/nview/detail/advance_impl.hpp>
0026 #include <boost/fusion/view/nview/detail/distance_impl.hpp>
0027 #include <boost/fusion/view/nview/detail/equal_to_impl.hpp>
0028 
0029 #ifdef _MSC_VER
0030 #  pragma warning(push)
0031 #  pragma warning(disable: 4512) // assignment operator could not be generated.
0032 #endif
0033 
0034 namespace boost { namespace fusion
0035 {
0036     struct nview_iterator_tag;
0037     struct random_access_traversal_tag;
0038 
0039     template<typename Sequence, typename Pos>
0040     struct nview_iterator
0041       : iterator_base<nview_iterator<Sequence, Pos> >
0042     {
0043         typedef nview_iterator_tag fusion_tag;
0044         typedef random_access_traversal_tag category;
0045 
0046         typedef Sequence sequence_type;
0047         typedef Pos first_type;
0048 
0049         BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
0050         explicit nview_iterator(Sequence& in_seq)
0051           : seq(in_seq) {}
0052 
0053         Sequence& seq;
0054     };
0055 
0056 }}
0057 
0058 #ifdef _MSC_VER
0059 #  pragma warning(pop)
0060 #endif
0061 
0062 #ifdef BOOST_FUSION_WORKAROUND_FOR_LWG_2408
0063 namespace std
0064 {
0065     template <typename Sequence, typename Pos>
0066     struct iterator_traits< ::boost::fusion::nview_iterator<Sequence, Pos> >
0067     { };
0068 }
0069 #endif
0070 
0071 #endif
0072 
0073