...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::unpack_expr — Metafunction that computes the return type of the
proto::unpack_expr()
function, with a domain deduced from the domains of the children.
// In header: <boost/proto/make_expr.hpp> template<typename Tag, typename Sequence, typename Void = void> struct unpack_expr { // types typedef typename proto::result_of::make_expr< Tag, typename fusion::result_of::value_at_c<S
, 0>::type, ... typename fusion::result_of::value_at_c<S
,N
-1>::type >::type type; // Where S is a Fusion RandomAccessSequence equivalent to Sequence, and N is the size of S. };
Compute the return type of the
proto::unpack_expr()
function.
Sequence
is a Fusion Forward Sequence.
In this specialization, the domain is deduced from the domains of the child types.
If proto::is_domain<Sequence>::value
is true
, then another specialization is selected.