![]() |
Home | Libraries | People | FAQ | More |
boost::proto::noinvoke — A type annotation in an ObjectTransform which instructs
Proto not to look for a nested ::type
within
T
after type substitution.
// In header: <boost/proto/transform/make.hpp> template<typename T> struct noinvoke { };
ObjectTransforms are evaluated by
proto::make<>
,
which finds all nested transforms and replaces them with the result of their applications.
If any substitutions are performed, the result is first assumed to be a metafunction to be applied;
that is, Proto checks to see if the result has a nested ::type
typedef. If it does, that becomes the result. The purpose of proto::noinvoke<>
is to prevent Proto from looking for a nested ::type
typedef
in these situations.
Example:
proto::when< _ , _> > >() > {}; proto::terminal<