Описание тега 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.