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> >()
>
>
>
{};