| Home | Libraries | People | FAQ | More

## Struct template make_expr<Tag, Domain, A...>

boost::proto::result_of::make_expr<Tag, Domain, A...> — Metafunction that computes the return type of the `proto::make_expr()` function, within the specified domain.

## Synopsis

    // In header: <boost/proto/make_expr.hpp>

    template<typename Tag, typename Domain, typename... A>
    struct make_expr<Tag, Domain, A...> {
      // types
      typedef see-below type;
    };

## Description

Computes the return type of the `proto::make_expr()` function.

### `make_expr` public types

1. typedef see-below type;

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

   Otherwise, `type` is a typedef for `boost::result_of<Domain(proto::expr< Tag, proto::listN< typename proto::result_of::as_child<A>::type...> >)>::type`