![]() |
Home | Libraries | People | FAQ | More |
boost::proto::result_of::make_expr<Tag, Domain, A...> — Metafunction that computes the return type of the
proto::make_expr()
function, within the specified domain.
// In header: <boost/proto/make_expr.hpp> template<typename Tag, typename Domain, typename... A> struct make_expr<Tag, Domain, A...> { // types typedef see-below type; };
Computes the return type of the
proto::make_expr()
function.
make_expr
public
types
Let be defined such that:
WRAP<X>
If X is Y &
or (possibly cv-qualified) boost::reference_wrapper<Y>,
then is equivalent to
WRAP<X>proto::result_of::as_child<Y, Domain>.
Otherwise, is equivalent to
WRAP<X>proto::result_of::as_expr<X, Domain>.
If proto::wants_basic_expr<typename Domain::proto_generator>::value
is true, then let be
Eproto::basic_expr; otherwise,
let be
Eproto::expr.
If Tag is
proto::tag::terminal, then
type is a typedef for
typename .
WRAP<A0>::type
Otherwise, type is a typedef for
boost::result_of<Domain(
E<
Tag, proto::listN<
typename WRAP<A>::type...> >)>::type