C++ 17 добавит копия этого объекта по значению, с a capture specification of [*this]
.C++ 17 лямбда-захват * это
Как это полезно? Как это отличается от захвата this
? Не может ли это уже достигнуто в C++ 14 с [tmp = *this]
?
Bonus для объяснения, почему P0018R3 использует [=, tmp = *this]
вместо [tmp = *this]
в их примере. Если бы они использовали [tmp = *this]
, все перечисленные недостатки решения C++ 14 были бы устранены.
Я думаю, они слишком упростили примеры. Когда вы добавите дополнительные локальные переменные или параметры, вы захотите их скопировать. Тогда часть '[=, ..]' имеет смысл (если вы не хотите их явно фиксировать один за другим, то есть). – dyp