for.hpp

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

HPP
65
字号
/*=============================================================================    Copyright (c) 2001-2007 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)==============================================================================*/#ifndef PHOENIX_STATEMENT_FOR_HPP#define PHOENIX_STATEMENT_FOR_HPP#include <boost/spirit/home/phoenix/core/composite.hpp>#include <boost/spirit/home/phoenix/core/compose.hpp>namespace boost { namespace phoenix{    struct for_eval    {        template <            typename Env          , typename Init, typename Cond, typename Step, typename Do>        struct result        {            typedef void type;        };        template <            typename RT, typename Env          , typename Init, typename Cond, typename Step, typename Do>        static void        eval(            Env const& env          , Init& init, Cond& cond, Step& step, Do& do_)        {            for (init.eval(env); cond.eval(env); step.eval(env))                do_.eval(env);        }    };    template <typename Init, typename Cond, typename Step>    struct for_gen    {        for_gen(Init const& init, Cond const& cond, Step const& step)            : init(init), cond(cond), step(step) {}        template <typename Do>        actor<typename as_composite<for_eval, Init, Cond, Step, Do>::type>        operator[](Do const& do_) const        {            return compose<for_eval>(init, cond, step, do_);        }        Init init;        Cond cond;        Step step;    };    template <typename Init, typename Cond, typename Step>    inline for_gen<Init, Cond, Step>    for_(Init const& init, Cond const& cond, Step const& step)    {        return for_gen<Init, Cond, Step>(init, cond, step);    }}}#endif

⌨️ 快捷键说明

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