Значение превратилось в константу при захвате лямбда?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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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