Имеет ли доступность удаленных конструкторов/операторов? - программирование
Подтвердить что ты не робот

Имеет ли доступность удаленных конструкторов/операторов?

Если тип имеет исключенный элемент по умолчанию, имеет ли значение, доступность которого имеет объявление?

class FooA {
public:
  FooA() = delete;
  FooA(FooA const&) = delete;
  FooA& operator=(FooA const&) = delete;
}

class FooB {
private:
  FooB() = delete;
  FooB(FooB const&) = delete;
  FooB& operator=(FooB const&) = delete;
}

class FooC {
protected:
  FooC() = delete;
  FooC(FooC const&) = delete;
  FooC& operator=(FooC const&) = delete;
}
4b9b3361

Ответ 2

Возможно, это искусственно, но это немного отличается

class FooA {
private:
  FooA& operator=(FooA const&) = delete;
};

class FooB : FooA {
  // ill-formed because FooB has no access
  using FooA::operator=;  
};

Является ли это практическим различием... Я действительно не знаю. Если FooA является параметром шаблона, и вы говорите using T::BazBang, это может произойти на практике.