Информация об изменениях

Сообщение Re: C++11 error: use of deleted function от 07.04.2016 11:21

Изменено 07.04.2016 11:23 Кодт

Здравствуйте, Elija, Вы писали:

Критичным для gcc является нетривиальный деструктор у B — из-за нетривиального деструктора у queue<C>.
Можно упростить:
struct B {
  B(int,int) {}
  B(const B&) = delete;
  ~B() {}
};

B bs[3] = { {1,2}, {3,4}, {5,6} };

и получить то же самое.

По всей видимости, VC просто срезал угол: выполнил copy elision.
Re: C++11 error: use of deleted function
Здравствуйте, Elija, Вы писали:

Критичным для gcc является нетривиальный деструктор у B — из-за нетривиального деструктора у queue<C>.
Можно упростить:
struct B {
  B(int,int) {}
  B(const B&) = delete;
  ~B() {}
};

и получить то же самое.

По всей видимости, VC просто срезал угол: выполнил copy elision.