Boost  v1.57.0
doxygen for www.boost.org
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
boost::proto::result_of::make_expr< Tag,, Void1, Void2 > Struct Template Reference

Metafunction that computes the return type of the make_expr() function, with a domain deduced from the domains of the children. More...

#include <proto_fwd.hpp>

Public Types

typedef detail::make_expr_
< Tag, deduce_domain >
::result_type 
type
 Same as result_of::make_expr<Tag, D, A0, ... More...
 

Detailed Description

template<typename Tag, BOOST_PP_ENUM_PARAMS(BOOST_PROTO_MAX_ARITY, typename A), typename Void1, typename Void2>
struct boost::proto::result_of::make_expr< Tag,, Void1, Void2 >

Metafunction that computes the return type of the make_expr() function, with a domain deduced from the domains of the children.

Use the result_of::make_expr<> metafunction to compute the return type of the make_expr() function.

In this specialization, the domain is deduced from the domains of the child types. (If is_domain<A0>value is true, then another specialization is selected.)

Member Typedef Documentation

template<typename Tag, BOOST_PP_ENUM_PARAMS(BOOST_PROTO_MAX_ARITY, typename A) , typename Void1, typename Void2>
typedef detail::make_expr_< Tag , deduce_domain >::result_type boost::proto::result_of::make_expr< Tag,, Void1, Void2 >::type

Same as result_of::make_expr<Tag, D, A0, ...

AN>::type where D is the deduced domain, which is calculated as follows:

For each x in [0,N) (proceeding in order beginning with x=0), if domain_of<Ax>::type is not default_domain, then D is domain_of<Ax>::type. Otherwise, D is default_domain.


The documentation for this struct was generated from the following file: