For matching one of a set of alternate grammars. More...
#include <proto_fwd.hpp>


Classes | |
| struct | impl |
| struct | impl< Expr &, State, Data > |
Public Types | |
| typedef or_ | proto_grammar |
| typedef or_ < BOOST_PP_ENUM_PARAMS(BOOST_PROTO_MAX_LOGICAL_ARITY, G) > | transform_type |
Public Member Functions | |
| BOOST_PROTO_CALLABLE () typedef X proto_is_transform_ | |
| BOOST_FORCEINLINE boost::proto::detail::apply_transform < transform_type(Expr const &)> ::result_type | operator() (Expr &&e) const |
| BOOST_FORCEINLINE boost::proto::detail::apply_transform < transform_type(Expr const &, State const &)> ::result_type | operator() (Expr &&e, State &&s) const |
| BOOST_FORCEINLINE boost::proto::detail::apply_transform < transform_type(Expr const &, State const &, Data const &)> ::result_type | operator() (Expr &&e, State &&s, Data &&d) const |
For matching one of a set of alternate grammars.
Alternates tried in order to avoid ambiguity. When used as a transform, or_<> applies the transform associated with the first grammar that matches the expression.
An expression type E matches or_<B0,B1,...Bn> if E matches any Bx for x in [0,n).
When applying or_<B0,B1,...Bn> as a transform with an expression e of type E, state s and data d, it is equivalent to Bx()(e, s, d), where x is the lowest number such that matches<E,Bx>value is true.
| typedef or_ boost::proto::or_<>::proto_grammar |
|
inherited |
|
inherited |
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |