Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
Разработка программного обеспечения

Function template let

Boost , The Boost C++ Libraries BoostBook Documentation Subset , Reference

Boost C++ Libraries

...one of the most highly regarded and expertly designed C++ library projects in the world. Herb Sutter and Andrei Alexandrescu, C++ Coding Standards

PrevUpHomeNext

Function template let

boost::xpressive::let — For binding local variables to placeholders in semantic actions when constructing a regex_iterator or a regex_token_iterator.

Synopsis

// In header: <boost/xpressive/regex_actions.hpp>

template<typename... ArgBindings> unspecified let(ArgBindings const &... args);

Description

xpressive::let() служит той же цели, что и match_results::let(); то есть связывает заполнитель с локальным значением. Цель состоит в том, чтобы позволить определить регекс с семантическими действиями, который относится к объектам, которые еще не существуют. Вместо того, чтобы ссылаться непосредственно на объект, семантическое действие может относиться к заполнителю, и значение заполнителя может быть определено позже с выражением let. Выражение let, созданное с помощью let(), передается конструктору regex_iterator или regex_token_iterator.

Смотрите раздел «Ссылка на нелокальные переменные» в Руководстве для дальнейшего обсуждения.

Пример:

// Define a placeholder for a map object:
placeholder<std::map<std::string, int> > _map;
// Match a word and an integer, separated by =>,
// and then stuff the result into a std::map<>
sregex pair = ( (s1= +_w) >> "=>" >> (s2= +_d) )
    [ _map[s1] = as<int>(s2) ];
// The string to parse
std::string str("aaa=>1 bbb=>23 ccc=>456");
// Here is the actual map to fill in:
std::map<std::string, int> result;
// Create a regex_iterator to find all the matches
sregex_iterator it(str.begin(), str.end(), pair, let(_map=result));
sregex_iterator end;
// step through all the matches, and fill in
// the result map
while(it != end)
    ++it;
std::cout << result["aaa"] << '\n';
std::cout << result["bbb"] << '\n';
std::cout << result["ccc"] << '\n';

Вышеприведенный код отображает:

1
23
456

Параметры:

аргии

Набор связываний аргументов, где каждое связывание аргументов является выражением назначения, левая сторона которого должна быть экземпляром placeholder для некоторых X, а правая сторона представляет собой значение типа X.


PrevUpHomeNext

Статья Function template let раздела The Boost C++ Libraries BoostBook Documentation Subset Reference может быть полезна для разработчиков на c++ и boost.




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.



:: Главная :: Reference ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-08-30 11:47:00
2025-07-04 12:04:14/0.0067448616027832/0