Описание тега boost-lambda
Boost Lambda Library - это библиотека шаблонов C++, которая реализует форму лямбда-абстракций для C++.
Основной мотивацией для Boost Lambda является предоставление гибких и удобных средств для определения безымянных функциональных объектов для алгоритмов STL.
Следующая строка выводит элементы некоторого контейнера STL через пробел:
for_each(a.begin(), a.end(), std::cout << _1 << ' ');
Выражение std::cout << _1 << ' '
определяет унарный объект функции.
Переменная _1
является параметром этой функции, заполнителем для фактического аргумента. В каждой итерации for_each функция вызывается с элементом a
в качестве фактического аргумента. Этот фактический аргумент заменяет заполнитель, и вычисляется "тело" функции.
Суть Boost Lambda заключается в том, что вы можете определять небольшие безымянные функциональные объекты, такие как приведенный выше, непосредственно на сайте вызова алгоритма STL.