LINUX.ORG.RU

чувак пишет о том что, обж-цэ блоки проще, а цпп нуль-хэ лямбды гибче. и что с того?

anonymous
()

Особенно хорошо заключение.

KblCb ★★★★★
()
Ответ на: комментарий от elverion

Бегло пролистал презентацию Саттера, так и не понял - что там со временем жизни захваченных переменных? Интересует случай, когда лямбда прожила дольше, чем контекст, в котором она была определена.

yoghurt ★★★★★
()
Ответ на: комментарий от yoghurt

По крайней мере такой код работает:

#include <functional>
#include <iostream>

typedef std::function<int (int)> Adder;

Adder createAdder(int a)
{
    return [a](int b)
    {
        return a + b;
    };
}

int main()
{
    Adder adder = createAdder(5);
    std::cout << adder(4) << std::endl;
    std::cout << adder(6) << std::endl;
}

elverion
()
Ответ на: комментарий от yoghurt

Время жизни переменных захваченных по ссылке определяется той областию видимости, в которой они объвлены. Вернёшь функциональный объект, который захватил по ссылке локальную переменную функции - получишь UB, всё просто :-)

Begemoth ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.