STRUCT(3)

NAME
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.

SYNOPSIS

// 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;
};

DESCRIPTION

Computes the return type of the proto::make_expr() function.

  make_expr public types

    1. typedef see-below type;

    Let WRAP<X> be defined such that:

        &#8226; If X is Y & or (possibly cv-qualified) boost::reference_wrapper<Y>, then WRAP<X> is equivalent to proto::result_of::as_child<Y, Domain>.

        &#8226; Otherwise, WRAP<X> is equivalent to proto::result_of::as_expr<X, Domain>.

        If proto::wants_basic_expr<typename Domain::proto_generator>::value is true, then let E be proto::basic_expr; otherwise, let E be proto::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