fusion_iterator.hpp

来自「Boost provides free peer-reviewed portab」· HPP 代码 · 共 58 行

HPP
58
字号
/*=============================================================================    Copyright (c) 2001-2006 Joel de Guzman    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(FUSION_FUSION_ITERATOR_10012005_1551)#define FUSION_FUSION_ITERATOR_10012005_1551#include <boost/fusion/iterator/value_of.hpp>#include <boost/fusion/iterator/next.hpp>#include <boost/fusion/iterator/prior.hpp>#include <boost/fusion/iterator/advance.hpp>#include <boost/fusion/iterator/distance.hpp>#include <boost/fusion/support/category_of.hpp>#include <boost/mpl/next_prior.hpp>#include <boost/mpl/advance_fwd.hpp>#include <boost/mpl/distance_fwd.hpp>namespace boost { namespace mpl{    template <typename Iterator>    struct fusion_iterator    {        typedef typename fusion::result_of::value_of<Iterator>::type type;        typedef typename fusion::traits::category_of<Iterator>::type category;        typedef Iterator iterator;    };    template <typename Iterator>    struct next<fusion_iterator<Iterator> >    {        typedef fusion_iterator<typename fusion::result_of::next<Iterator>::type> type;    };    template <typename Iterator>    struct prior<fusion_iterator<Iterator> >    {        typedef fusion_iterator<typename fusion::result_of::prior<Iterator>::type> type;    };    template <typename Iterator, typename N>    struct advance<fusion_iterator<Iterator>, N>    {        typedef fusion_iterator<typename fusion::result_of::advance<Iterator, N>::type> type;    };    template <typename First, typename Last>    struct distance<fusion_iterator<First>, fusion_iterator<Last> >        : fusion::result_of::distance<First, Last>    {};}}#endif

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?