| Home | Libraries | People | FAQ | More

## Struct template is_aggregate

boost::proto::is_aggregate — A Boolean metafunction that indicates whether a type requires aggregate initialization.

## Synopsis

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

    template<typename T>
    struct is_aggregate :  mpl::bool_<true-or-false> {
    };

## Description

`proto::is_aggregate<>` is used by the `proto::make<>` transform to determine how to construct an object of some type `T`, given some initialization arguments `a0,...an`. If `proto::is_aggregate<T>::value` is `true`, then an object of type `T` will be initialized as `T t = {a0,...an};`. Otherwise, it will be initialized as `T t(a0,...an)`.

Note: `proto::expr<>` and `proto::basic_expr<>`are aggregates.