A wildcard grammar element that matches any expression, and a transform that returns the current expression unchanged. More...
#include <matches.hpp>
Classes | |
struct | impl |
Public Types | |
typedef _ | proto_grammar |
typedef _ | 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 |
A wildcard grammar element that matches any expression, and a transform that returns the current expression unchanged.
The wildcard type, _
, is a grammar element such that matches<E,_>value
is true
for any expression type E
.
The wildcard can also be used as a stand-in for a template argument when matching terminals. For instance, the following is a grammar that will match any std::complex<>
terminal:
When used as a transform, _
returns the current expression unchanged. For instance, in the following, _
is used with the fold<>
transform to fold the children of a node:
typedef _ boost::proto::_::proto_grammar |
|
inherited |
|
inherited |
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |