Вход на сайт
лямда в c11 польза или извращение?
NEW 18.12.17 14:14
в ответ anly 15.12.17 18:58
В принципе, так и есть.
Вот пример из моего актуального кода с лямбдой: https://pastebin.com/5JpSD8mH
А вот то же без лябмды: https://pastebin.com/cEGCehYS
NEW 18.12.17 18:46
в ответ Simple 18.12.17 14:14
НП.
лямды отлично подходят вместо макросов.
допустим такой макрос из древнего С:
#define FUN(X) a*(X)*(X) + b*(X) + c
где a,b,c - локальные переменные функции, а X параметр макроса.
С лямдой можно сделать:
auto FUN = [a,b,c](float X) -> float{ return a*X*X + b*X + c;}
Вызовы будут совершенно однинаковые, типа y = FUN(7.7);
Но преимущесвто у лямды:
- можно по шагам ходить в дебагере (есть смысл если лямда больше одной строчки).
- X вычисляется один раз (если это выражение)
- компилятор лучше покажет место ошибки, если она есть
(кому лень, может вместо [a,b,c] написать[=])
Проклят нарушающий межи ближнего своего (Втор.27:17)