advance_impl.hpp

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

HPP
48
字号
/*=============================================================================    Copyright (c) 2001-2006 Joel de Guzman    Copyright (c) 2005-2006 Dan Marsden    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_ADVANCE_IMPL_14122005_2015)#define FUSION_ADVANCE_IMPL_14122005_2015#include <boost/fusion/iterator/advance.hpp>#include <boost/mpl/negate.hpp>namespace boost { namespace fusion {    struct reverse_view_iterator_tag;    template <typename Iterator>    struct reverse_view_iterator;    namespace extension    {        template<typename Tag>        struct advance_impl;        template<>        struct advance_impl<reverse_view_iterator_tag>        {            template<typename Iterator, typename Dist>            struct apply            {                typedef typename Iterator::first_type first_type;                typedef typename mpl::negate<Dist>::type negative_dist;                typedef typename result_of::advance<first_type, negative_dist>::type advanced_type;                typedef reverse_view_iterator<advanced_type> type;                static type                call(Iterator const& i)                {                    return type(boost::fusion::advance<negative_dist>(i.first));                }            };        };    }}}#endif

⌨️ 快捷键说明

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