ограничение режима захвата по умолчанию и 'this' в лямбда-выражении C ++
мне интересно, почему=
Захват по умолчанию режим запрещаетthis
вЗахват-лист C ++лямбда-выражение.
То есть,
[=, this]{ }; // error
[&, this]{ }; // OK
Это указано в C ++ 11 5.1.2 / 8.
Если лямбда-захват включает в себя захват по умолчанию, то есть &идентификаторам в лямбда-захвате не должно предшествовать &.Если лямбда-захват включает в себя захват-по умолчанию, то есть =, лямбда-захват не должен содержать это, и каждому идентификатору, который он содержит, должен предшествовать &.В: Есть ли какая-либо причина или предыстория для этого правила?