| Home | Libraries | People | FAQ | More

## Struct template make_expr

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.

## Synopsis

    // 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;
    };

## Description

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

1. 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.