switch_eval.hpp
来自「Boost provides free peer-reviewed portab」· HPP 代码 · 共 112 行
HPP
112 行
/*============================================================================= 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 + =
减小字号Ctrl + -
显示快捷键?