Struct _
boost::proto::_ — A wildcard grammar element that matches any expression, and a transform that returns
the current expression unchanged.
Synopsis
Description
Тип карточки, прото::_
, является грамматическим элементом, таким, что прото::matches:: value
является true
для любого типа выражения E
.
Дикая карта также может быть использована в качестве резервного входа для аргумента шаблона при сопоставлении терминалов. Например, следующая грамматика будет соответствовать любому std::complex<
терминалу:
BOOST_MPL_ASSERT((
proto::matches<
proto::terminal<std::complex<double> >::type,
proto::terminal<std::complex< proto::_ > >
>
));
При использовании в качестве преобразования прото::_
возвращает текущее выражение без изменений. Например, в следующем прото::_
используется с прото::fold<
преобразить в складки детей узла:
struct CountChildren :
proto::or_<
proto::when<proto::terminal<proto::_>, mpl::int_<0>()>,
proto::otherwise<
proto::fold<
proto::_,
mpl::int_<0>(),
mpl::plus<proto::_state, mpl::int_<1> >()
>
>
>
{};