Код: Выделить всё
#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
Мобильная версия