Разница между синтаксисом захвата this в лямбде

В чём разница между следующими захватами в лямбде?

struct A { 
  void f(int x) {
    [=]{};        // (1)
    [=, this]{};  // (2)
    [=, *this]{}; // (3)
  }
};

int main() {}

Ответы (1 шт):

Автор решения: HolyBlackCat

*this захватывает текущий объект по значению, т.е. копирует *this в лямбду.

this захватывает его по ссылке.

& по умолчанию захватывает this, если он нужен (по ссылке, как и все остальное).

= почему-то тоже захватывает this по ссылке (если он нужен), хотя все остальное - по значению. Начиная с C++20, захват this через = стал устаревшим. Видимо когда-то хотят переделать на нормальный захват по значению.

→ Ссылка