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, Domain, typename Domain::proto_is_domain_ > Struct Template Reference

Metafunction that computes the return type of the make_expr() function, within the specified domain. More...

#include <make_expr.hpp>

Public Types

typedef detail::make_expr_
< Tag, Domain >::result_type 
type
 If Tag is tag::terminal, then type is a typedef for boost::result_of<Domain(expr<tag::terminal, term<A0> >)>::type. More...
 

Detailed Description

template<typename Tag, typename Domain>
struct boost::proto::result_of::make_expr< Tag, Domain, typename Domain::proto_is_domain_ >

Metafunction that computes the return type of the make_expr() function, within the specified domain.

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

Member Typedef Documentation

template<typename Tag , typename Domain >
typedef detail::make_expr_< Tag , Domain >::result_type boost::proto::result_of::make_expr< Tag, Domain, typename Domain::proto_is_domain_ >::type

If Tag is tag::terminal, then type is a typedef for boost::result_of<Domain(expr<tag::terminal, term<A0> >)>::type.

Otherwise, type is a typedef for boost::result_of<Domain(expr<Tag, listN< as_child<A0>::type, ... as_child<AN>::type>) >::type, where N is the number of non-void template arguments, and as_child<A>::type is evaluated as follows:


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