iter_fold_if_impl.hpp

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

HPP
134
字号
// Copyright Aleksey Gurtovoy 2001-2004// Copyright David Abrahams 2001-2002//// 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)//// *Preprocessed* version of the main "iter_fold_if_impl.hpp" header// -- DO NOT modify by hand!namespace boost { namespace mpl { namespace aux {template< typename Iterator, typename State >struct iter_fold_if_null_step{    typedef State state;    typedef Iterator iterator;};template< bool >struct iter_fold_if_step_impl{    template<          typename Iterator        , typename State        , typename StateOp        , typename IteratorOp        >    struct result_    {        typedef typename apply2< StateOp,State,Iterator >::type state;        typedef typename IteratorOp::type iterator;    };};template<>struct iter_fold_if_step_impl<false>{    template<          typename Iterator        , typename State        , typename StateOp        , typename IteratorOp        >    struct result_    {        typedef State state;        typedef Iterator iterator;    };};template<      typename Iterator    , typename State    , typename ForwardOp    , typename Predicate    >struct iter_fold_if_forward_step{    typedef typename apply2< Predicate,State,Iterator >::type not_last;    typedef typename iter_fold_if_step_impl<          BOOST_MPL_AUX_MSVC_VALUE_WKND(not_last)::value        >::template result_< Iterator,State,ForwardOp, mpl::next<Iterator> > impl_;    typedef typename impl_::state state;    typedef typename impl_::iterator iterator;};template<      typename Iterator    , typename State    , typename BackwardOp    , typename Predicate    >struct iter_fold_if_backward_step{    typedef typename apply2< Predicate,State,Iterator >::type not_last;    typedef typename iter_fold_if_step_impl<          BOOST_MPL_AUX_MSVC_VALUE_WKND(not_last)::value        >::template result_< Iterator,State,BackwardOp, identity<Iterator> > impl_;    typedef typename impl_::state state;    typedef typename impl_::iterator iterator;};template<      typename Iterator    , typename State    , typename ForwardOp    , typename ForwardPredicate    , typename BackwardOp    , typename BackwardPredicate    >struct iter_fold_if_impl{ private:    typedef iter_fold_if_null_step< Iterator,State > forward_step0;    typedef iter_fold_if_forward_step< typename forward_step0::iterator, typename forward_step0::state, ForwardOp, ForwardPredicate > forward_step1;    typedef iter_fold_if_forward_step< typename forward_step1::iterator, typename forward_step1::state, ForwardOp, ForwardPredicate > forward_step2;    typedef iter_fold_if_forward_step< typename forward_step2::iterator, typename forward_step2::state, ForwardOp, ForwardPredicate > forward_step3;    typedef iter_fold_if_forward_step< typename forward_step3::iterator, typename forward_step3::state, ForwardOp, ForwardPredicate > forward_step4;        typedef typename if_<          typename forward_step4::not_last        , iter_fold_if_impl<              typename forward_step4::iterator            , typename forward_step4::state            , ForwardOp            , ForwardPredicate            , BackwardOp            , BackwardPredicate            >        , iter_fold_if_null_step<              typename forward_step4::iterator            , typename forward_step4::state            >        >::type backward_step4;    typedef iter_fold_if_backward_step< typename forward_step3::iterator, typename backward_step4::state, BackwardOp, BackwardPredicate > backward_step3;    typedef iter_fold_if_backward_step< typename forward_step2::iterator, typename backward_step3::state, BackwardOp, BackwardPredicate > backward_step2;    typedef iter_fold_if_backward_step< typename forward_step1::iterator, typename backward_step2::state, BackwardOp, BackwardPredicate > backward_step1;    typedef iter_fold_if_backward_step< typename forward_step0::iterator, typename backward_step1::state, BackwardOp, BackwardPredicate > backward_step0;     public:    typedef typename backward_step0::state state;    typedef typename backward_step4::iterator iterator;};}}}

⌨️ 快捷键说明

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