Следите за новинками
в нашем Telegram канале. Жми, чтобы подписаться:)
⊗cpSpCbMu 453 of 696 menu
◀ ▶

Изменяемый захват лямбды в C++

Захват по значению копирует переменную внутрь замыкания и по умолчанию делает ее константной в теле лямбды.

Ключевое слово mutable снимает эту константность для копий, поэтому счетчик можно увеличивать внутри operator(). Запишем лямбду со счетчиком и выведем два вызова:

#include <iostream> int start = 0; auto step = [start]() mutable { start += 1; return start; }; std::cout << step() << "\n"; std::cout << step() << "\n";

Захватите int n со значением 0 по значению. Лямбда mutable должна три раза увеличивать n и возвращать его; выведите три результата с новой строки.

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить