Function make_expr
boost::proto::make_expr — Construct an expression of the requested tag type with a domain and with the specified
arguments as children.
Synopsis
Description
Этот шаблон функции может быть вызван либо с параметром шаблона<Domain>, либо без него. Если домен не указан, домен выводится путем изучения доменов данных аргументов. Видишь?<proto::deduce_domain>для полного описания используемой процедуры.
<WRAP>(x)Определить следующим образом:
Если<x>является<boost::reference_wrapper<>>,<WRAP>(x)эквивалентно<proto::as_child>(x.get())
В противном случае<WRAP>(x)эквивалентно<proto::as_expr>(x)
Если<proto::wants_basic_expr>::значениеистинно, тогда пусть<E>будет<proto::basic_expr>; в противном случае пусть<E>будет<proto::expr>.
Пусть<MAKE>(Tag, b...)будет определено как<E>proto::listN>>::make(b...).
Если<Tag><proto::tag::terminal>, то возвратитесь<WRAP>(а0.
В противном случае, возврат<Domain()(MAKE>(Тэг,<WRAP>(а) ...).