boost::proto::is_aggregate — 一个布尔元函数,指示一个类型是否需要聚合初始化。
// In header: <boost/proto/traits.hpp>
template<typename T>
struct is_aggregate : mpl::bool_<true-or-false> {
};
proto::is_aggregate<> 用于 proto::make<> 变换,以确定如何构造某种类型 T 的对象,给定一些初始化参数 a0,...an。如果 proto::is_aggregate<T>::value 为 true,则类型为 T 的对象将被初始化为 T t = {a0,...an};。否则,它将被初始化为 T t(a0,...an)。
注意:proto::expr<> 和 proto::basic_expr<> 是聚合。