Значение превратилось в константу при захвате лямбда?C++

Программы на C++. Форум разработчиков
Anonymous
Значение превратилось в константу при захвате лямбда?

Сообщение Anonymous »

У меня есть простой код:

Код: Выделить всё

std::shared_ptr s;

auto bla = [s]() {
s.reset();
};
Я имел в виду, что общий_ptr будет захвачен лямбдой, а затем сброшен после вызова лямбды.

Компиляция этого с помощью VS дает следующее ошибка:

Код: Выделить всё

error C2662: 'void std::shared_ptr::reset(void) noexcept': cannot convert 'this' pointer from 'const std::shared_ptr' to 'std::shared_ptr &'
1>...: message : Conversion loses qualifiers
Что дает? Почемуshared_ptr превращается в constshared_ptr?


Подробнее здесь: https://stackoverflow.com/questions/631 ... da-capture

Вернуться в «C++»