Неявный захват этогоC++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Неявный захват этого

Сообщение Anonymous »

Почему в следующем коде у нас есть неявное захват этого ?

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

#pragma warning (default : 4855)

struct S {
float f = 0.0f;

void foo() {
[=]() { f = 1.0f; };
}
};

int main()
{
}
< /code>
Просто для того, чтобы быть на одной странице, я не спрашиваю, почему принято решение о том, чтобы оправдать неявный захват этого через [=]; Если у нас есть неявное захват этого 
здесь, это течет, оно довольно логично и не является точкой моего вопроса здесь.
Мой вопрос: почему мы имеем неявное захват этого здесь? Мне просто нужна копия чего-то с очень четко определенным адресом в памяти. Мне все равно, мне либо нужно использовать это , чтобы получить его адрес, либо его можно было принять «напрямую»; Это делается за пределами Lambda, и мне не нужно это в лямбде для этого.
мой ключевой момент, что для использования copy переменной мне не нужна это внутри Lambda, поэтому не нужно ее захватывать. Этого достаточно, чтобы захватить переменную. < /P>
Если это не правильно, каково представление компилятора? (Любой ответ в форме вопросов «Быть ​​компилятором, как бы вы… без захвата этого ?» помогли).

Подробнее здесь: https://stackoverflow.com/questions/796 ... re-of-this
Ответить

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

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

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

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

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