...one of the most highly
regarded and expertly designed C++ library projects in the
world.
— Herb Sutter and Andrei
Alexandrescu, C++
Coding Standards
boost::proto::result_of::make_expr — Metafunction that computes the return type of the
proto::make_expr()
function, with a domain deduced from the domains of the children.
// In header: <boost/proto/make_expr.hpp>
template<typename Tag, typename... A>
struct make_expr {
// types
typedef domain-deduced-from-child-types
D;
typedef typename proto::result_of::make_expr<Tag, D, A...>::type type;
};
Computes the return type of the
proto::make_expr()
function.
In this specialization, the domain is deduced from the domains of the child types.
If proto::is_domain<A0>::value
is true
, then another specialization is selected.
make_expr
public
types
typedef domain-deduced-from-child-types
D;
In this specialization, Proto uses the domains of the child expressions to compute the
domain of the parent. See
proto::deduce_domain
for a full
description of the procedure used.