analizer
26.07.2011 11:22 mcabber
плюсота, а есть гарантия, что вот здесь: http://ideone.com/yrjN9 вызов f() не будет сделан в строке 11? а то мне из последнего драфта неочевидно что все вычисления внутри лямбды — ленивые.
оно должно замкнуть ссылку на f, но не f(). Так что да, лениво.
ок, спасибо. что-то я не увидел что всё что внутри — тоже замыкается.
я в плюсах не знаю как. Ну попробуй объявить переменную int a = 10;, потом чтоб функция вернула замыкание return a + 1 и вызови эту функцию и то, что она вернула. Понимаешь?
ну плюсах-то явно будет указано [&a](){return a + 1;}, т.е. тут-то ясно будет указано что на «a» надо схоронить ссылку.
Аа. А если захочешь "замкнуть" — надо передавать копию a туда, да? (ну, если a — объект какой)
мне пофиг на «замкнуть», мне хочется знать что вычисления не зависящие от параметров — ленивы.
ну это просто анонимная функция. Представь себе, что функция эта объявлена не анонимно а явно.
ок, годная аналогия. согласен.
какая нахрен аналогия. Это оно и есть.