Вход на сайт
Как сконвертировать GNU-C вложенные функции в лямбды С++ и чтоб переносимо
731 просмотров
Перейти к просмотру всей ветки
LifeRider постоялец
в ответ ilghiz 02.02.19 18:27
А почему вы, сионисты, упорно во всех примерах передаете лямбдам ссылки на все внешние переменные?
И чего это сразу - сионисты, наше дело auto и [&] написать, а дальше - компилятор умный, он пусть думает... Он вот в первом примере сам догадался, что лямбда с [&] - это от лукавого, и родил кондовый function pointer, я современных плюсовых компиляторов уже и побаиваться стал. :))
Переменные моих головных фунций лежат в стеке, обычно хорошо закешированном во всех кешах памяти предыдущими операциями, и производительность от такой конструкции не падает.
Ну да, производительность от использования лямбд не должна падать, хоть лямбды по-сути есть конвертация в класс, но при этом они создаются в стеке и конструктор класса - inlined. Но, сравнительно потестировать тайминги вызовов не мешало бы. Вот тут https://web.mst.edu/~nmjxv3/articles/lambdas.html немного об оверхеде лямбд в плюсах.