Login
лямда в c11 польза или извращение?
404 просмотров
Перейти к просмотру всей ветки
dymanoid знакомое лицо
in Antwort moose 09.12.17 23:28
Классический пример - использование std::алгоритмов. Например, вам надо отсортировать вектор векторов по i-му элементу этих векторов, причём i задаётся во время выполнения. Алгоритм сортировки принимает два параметра, но нам надо передать три. Классическое решение с костылями - пишем функтор с конструктором, принимающим i как параметр, далее по схеме. Недостатки очевидны - функтор надо писать и мейнтейнить, во время дизайна определять, что передавать в конструктор и т.п. Типичный костыль в вакууме. Много кода, выхлопа мало. Лямбда решает все проблемы с помощью захвата контекста (по желанию автоматического) прямо при вызове алгоритма.