Лямбда выражение захват по значению
#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
В момент создания лямбда-выражения происходит захват по значению, соотв. создаётся копия строки, которая должна быть доступна в момент вызова лямбда-выражения.
Вопрос: каково время жизни этой захваченной переменной? (буду благодарен, если будет ссылка на стандарт)