boost::proto::nary_expr — 一个元函数,用于生成具有指定标签类型的 n 元表达式类型,一个用于匹配 n 元表达式的语法元素,以及一个 PrimitiveTransform,它分派到 proto::pass_through<>
转换。
// In header: <boost/proto/traits.hpp> template<typename Tag, typename... A> struct nary_expr : proto::transform< nary_expr<Tag, A...> > { // types typedef proto::expr< Tag, proto::listN< A... > > type; typedef proto::basic_expr< Tag, proto::listN< A... > > proto_grammar; // member classes/structs/unions template<typename Expr, typename State, typename Data> struct impl : proto::pass_through<nary_expr>::template impl<Expr, State, Data> { }; };