Компиляция программы с помощью g++ класса с удалёнными конструкторами

Почему этот код компилируется и работает на MacOS?


#include <iostream>
class A {
 public:
  A() = delete;
  A(const A &) = delete;
  A(A &&) = delete;
  A &operator=(const A &) = delete;
  A &operator=(A &&) = delete;
  ~A() = delete;

  void k() { std::cout << "PUCK"; }
};

int main() {
  A &b(b);
  b.k();
  return 0;
}

Компилирую на gcc 11.2.0. Clang 13.0.0 данный код не собирает.


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