ograniczenie dotyczące domyślnego trybu przechwytywania i „this” w wyrażeniu lambda w C ++

Zastanawiam się dlaczego= przechwytywanie domyślne tryb zabraniathis wlista przechwytywania C ++wyrażenie lambda.

To jest,

[=, this]{ };  // error
[&, this]{ };  // OK

Jest to określone przez C ++ 11 5.1.2 / 8.

Jeśli przechwytywanie lambda zawiera domyślne przechwytywanie i, identyfikatory w przechwytywaniu lambda nie powinny być poprzedzone przez &.Jeśli przechwytywanie lambda zawiera domyślne przechwytywanie = =, przechwytywanie lambda nie będzie zawierało tego i każdy zawierający go identyfikator będzie poprzedzony znakiem &.

P: Czy istnieje jakaś przyczyna lub historia tego przepisu?

questionAnswers(1)

yourAnswerToTheQuestion