| Home | Libraries | People | FAQ | More

## Struct template unpack_expr

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.

## Synopsis

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

## Description

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.