📄 catch_composite.hpp
字号:
/*============================================================================= Copyright (c) 2005-2007 Dan Marsden Copyright (c) 2005-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_CATCH_COMPOSITE_HPP#define PHOENIX_STATEMENT_DETAIL_CATCH_COMPOSITE_HPP#include <boost/spirit/home/phoenix/core/actor.hpp>#include <boost/spirit/home/phoenix/core/composite.hpp>#include <boost/spirit/home/phoenix/core/compose.hpp>namespace boost { namespace phoenix {namespace detail{ struct catch_composite_eval { template<typename Env, typename Actor> struct result : eval_result<typename Actor::eval_type, Env> {}; template<typename Rt, typename Env, typename Actor> static typename result<Env,Actor>::type eval(const Env& env, Actor& actor) { return actor.eval(env); } }; template<typename Exception, typename Actor> struct catch_composite : composite<catch_composite_eval, fusion::vector<Actor> > { catch_composite(const Actor& actor) : composite<catch_composite_eval, fusion::vector<Actor> >(actor) { } typedef Exception exception_type; }; template<typename Exception, typename Actor> struct as_catch_actor { typedef catch_composite< Exception, Actor> comp; typedef actor<comp> type; }; template<typename Exception, typename Actor> inline typename as_catch_actor<Exception, Actor>::type catch_actor(const Actor& actor) { return catch_composite<Exception,Actor>(actor); }}}}#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -