У меня есть асинхронная лямбда в функции. Как я буду хранить переменную захвата.Держите переменную вокруг асинхронной лямбда
псевдопользователей Код:
void hello()
{
std::string hi("This is hello");
doSomethingThenCallThisLambda([&]
{
std::cout << hi;
});
}
Код выше, кажется, вызывает ошибки памяти, но я не знаю, почему.
Сделать это 'static'? – 0x499602D2
Захват путем копирования или использования 'shared_ptr', если' static' не работает для 'std :: string hi'. – dyp
@James Campbell вы освобождаете строку в любой точке (т. Е. Ее можно освободить до того, как ваша лямбда ее использует?) – noelicus