Я хочу захватить std::atomic
в лямбда-выражении. Время жизни переменной atomi c должно быть привязано к лямбде, поэтому я не могу захватить по ссылке, но хочу избежать выделения кучи.
Как я могу изменить следующий фрагмент кода, чтобы сделать его скомпилировать и вести себя как задумано?
#include <atomic>
int main()
{
std::atomic_int a{42};
auto check = [a] () mutable { return a.fetch_sub(1) == 1; };
// ^ error: call to deleted constructor of 'std::atomic_int'
}