Boost C++ Libraries of the most highly regarded and expertly designed C++ library projects in the world. Herb Sutter and Andrei Alexandrescu, C++ Coding Standards

This is the documentation for an old version of boost. Click here for the latest Boost documentation.

Struct template make_expr<Tag, Domain, A...>

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

  1. typedef see-below type;

    Let WRAP<X> be defined such that:

    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