Struct template function
boost::xpressive::function — A unary metafunction that turns an ordinary function object type into the type of a deferred function object for use in xpressive semantic actions.
Synopsis
Description
Используйте<xpressive::function<>
>, чтобы превратить обычный тип объекта полиморфной функции в тип, который может быть использован для объявления объекта для использования в депрессивных семантических действиях.
Например, глобальный объект<xpressive::push_back
>может быть использован для создания отсроченных действий, которые имеют эффект выталкивания значения в контейнер. Он определяется<xpressive::function<>
>следующим образом:
xpressive::function<xpressive::op::push_back>::type const push_back = {};
где<op::push_back
>— обычный функциональный объект, который толкает свой второй аргумент в свой первый. Таким образом,<xpressive::push_back
>может использоваться в семантических действиях следующим образом:
namespace xp = boost::xpressive;
using xp::_;
std::list<int> result;
std::string str("1 23 456 7890");
xp::sregex rx = (+_d)[ xp::push_back(xp::ref(result), xp::as<int>(_) ]
>> *(' ' >> (+_d)[ xp::push_back(xp::ref(result), xp::as<int>(_) ) ]);