repetitive_view_iterator.hpp
来自「Boost provides free peer-reviewed portab」· HPP 代码 · 共 52 行
HPP
52 行
/*============================================================================= Copyright (c) 2007 Tobias Schwinger Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)==============================================================================*/#if !defined(BOOST_FUSION_REPETITIVE_VIEW_ITERATOR_HPP_INCLUDED)#define BOOST_FUSION_REPETITIVE_VIEW_HPP_ITERATOR_INCLUDED#include <boost/fusion/support/iterator_base.hpp>#include <boost/fusion/support/category_of.hpp>#include <boost/fusion/iterator/mpl/convert_iterator.hpp>#include <boost/fusion/adapted/mpl/mpl_iterator.hpp>#include <boost/fusion/sequence/intrinsic/begin.hpp>#include <boost/fusion/sequence/intrinsic/end.hpp>#include <boost/fusion/view/repetitive_view/detail/deref_impl.hpp>#include <boost/fusion/view/repetitive_view/detail/next_impl.hpp>#include <boost/fusion/view/repetitive_view/detail/value_of_impl.hpp>namespace boost { namespace fusion{ struct repetitive_view_iterator_tag; template<typename Sequence, typename Pos = typename result_of::begin<Sequence>::type> struct repetitive_view_iterator : iterator_base< repetitive_view_iterator<Sequence,Pos> > { typedef repetitive_view_iterator_tag fusion_tag; typedef Sequence sequence_type; typedef typename convert_iterator<Pos>::type pos_type; typedef typename convert_iterator<typename result_of::begin<Sequence>::type>::type first_type; typedef typename convert_iterator<typename result_of::end<Sequence>::type>::type end_type; typedef single_pass_traversal_tag category; explicit repetitive_view_iterator(Sequence& seq) : seq(seq), pos(begin(seq)) {} repetitive_view_iterator(Sequence& seq, pos_type const& pos) : seq(seq), pos(pos) {} Sequence& seq; pos_type pos; };}}#endif
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?