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<>
是聚合。