Boost C++ 库
...这是世界上最受尊敬、设计最精妙的 C++ 库项目之一。
— Herb Sutter 和 Andrei Alexandrescu, C++ Coding Standards
boost::proto::result_of::make_expr — 一个元函数,用于计算 proto::make_expr() 函数的返回类型,其中域是从子域推导出来的。
// In header: <boost/proto/make_expr.hpp>
template<typename Tag, typename... A>
struct make_expr {
// types
typedef domain-deduced-from-child-types D;
typedef typename proto::result_of::make_expr<Tag, D, A...>::type type;
};计算 proto::make_expr() 函数的返回类型。
在此特化中,域是从子类型域推导出来的。如果 proto::is_domain<A0>::value 为 true,则会选择另一个特化。
make_expr 公有类型
typedef domain-deduced-from-child-types D;
在此特化中,Proto 使用子表达式的域来计算父域。有关所使用的过程的完整描述,请参见 proto::deduce_domain。