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 + -
显示快捷键?