boost::proto::is_transform — 布尔元函数,用于判断一个类型是否为 PrimitiveTransform。
// In header: <boost/proto/traits.hpp>
template<typename T>
struct is_transform : mpl::bool_<true-or-false
> {
};
proto::is_transform<>
被 proto::make<>
变换器用来确定一个类型 R
是否表示一个要应用的 PrimitiveTransform,还是仅仅表示它本身。
它也被 proto::call<>
变换器用来确定函数类型 R()
、R(A1)
和 R(A1, A2)
是否应(根据需要)接收表达式、状态和数据参数。
除非为类型 T
特化,否则 proto::is_transform<T>::value
的计算如下:
如果 T
是一个类类型,它直接或间接继承自 proto::transform<>
的实例化,则 proto::is_transform<T>::value
为 true
。
否则,proto::is_transform<T>::value
为 false
。