⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 switch_eval.hpp

📁 Boost provides free peer-reviewed portable C++ source libraries. We emphasize libraries that work
💻 HPP
字号:
/*=============================================================================    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_DETAIL_SWITCH_EVAL_HPP#define PHOENIX_STATEMENT_DETAIL_SWITCH_EVAL_HPPnamespace boost { namespace phoenix { namespace detail{    template <int N>    struct switch_eval;    template <>    struct switch_eval<0>    {        template <            typename Env, typename Cond, typename Default        >        struct result        {            typedef void type;        };        template <            typename RT, typename Env, typename Cond, typename Default        >        static void        eval(            Env const& env, Cond& cond, Default& default_        )        {            default_.eval(env);        }    };    template <>    struct switch_eval<1>    {        template <            typename Env, typename Cond, typename Default          , typename Case0        >        struct result        {            typedef void type;        };        template <            typename RT, typename Env, typename Cond, typename Default          , typename Case0        >        static void        eval(            Env const& env, Cond& cond, Default& default_          , Case0& _0        )        {            switch (cond.eval(env))            {                case Case0::value:                    _0.eval(env);                    break;                default:                    default_.eval(env);            }        }    };    template <>    struct switch_eval<2>    {        template <            typename Env, typename Cond, typename Default          , typename Case0, typename Case1        >        struct result        {            typedef void type;        };        template <            typename RT, typename Env, typename Cond, typename Default          , typename Case0, typename Case1        >        static void        eval(            Env const& env, Cond& cond, Default& default_          , Case0& _0, Case1& _1        )        {            switch (cond.eval(env))            {                case Case0::value:                    _0.eval(env);                    break;                case Case1::value:                    _1.eval(env);                    break;                default:                    default_.eval(env);            }        }    };    //  Bring in the rest of the switch_evals    #include <boost/spirit/home/phoenix/statement/detail/switch_eval.ipp>}}}#endif

⌨️ 快捷键说明

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