Лямбда выражение захват по значению

#include <iostream>
#include <string>

int main()
{
    std::string captive{ "test string" };

    auto lambda{ [captive](std::string string) -> void
    {
        std::cout << "capture: " << captive << std::endl;
        std::cout << "parameter: " << string << std::endl;
    } };

    captive = "not test string";

    lambda(std::move(captive));

    return 0;
}

Out:

capture: test string
parameter: not test string

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

Вопрос: каково время жизни этой захваченной переменной? (буду благодарен, если будет ссылка на стандарт)


Ответы (0 шт):