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

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

13.12.17 08:55
Re: лямда в c11 польза или извращение?
 
Программист коренной житель
в ответ dymanoid 11.12.17 21:13
Классическое решение с костылями - пишем функтор с конструктором, принимающим i как параметр, далее по схеме. Недостатки очевидны - функтор надо писать и мейнтейнить, во время дизайна определять, что передавать в конструктор и т.п. Типичный костыль в вакууме. Много кода, выхлопа мало. Лямбда решает все проблемы с помощью захвата контекста (по желанию автоматического) прямо при вызове алгоритма.

Вопрос спорный.

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

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

Во-третьих, если у тебя есть несколько мест с похожей сортировкой, то придется тебе лямбду дублировать.

 

Перейти на