Deutsch
Germany.ruФорумы → Архив Досок→ Программирование

лямда в c11 польза или извращение?

11.12.17 21:13
Re: лямда в c11 польза или извращение?
 
dymanoid знакомое лицо
dymanoid
в ответ moose 09.12.17 23:28

Классический пример - использование std::алгоритмов. Например, вам надо отсортировать вектор векторов по i-му элементу этих векторов, причём i задаётся во время выполнения. Алгоритм сортировки принимает два параметра, но нам надо передать три. Классическое решение с костылями - пишем функтор с конструктором, принимающим i как параметр, далее по схеме. Недостатки очевидны - функтор надо писать и мейнтейнить, во время дизайна определять, что передавать в конструктор и т.п. Типичный костыль в вакууме. Много кода, выхлопа мало. Лямбда решает все проблемы с помощью захвата контекста (по желанию автоматического) прямо при вызове алгоритма.

 

Перейти на