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。