Re[2]: C++11 error: use of deleted function
От: Elija  
Дата: 07.04.16 11:37
Оценка: +1
Здравствуйте, Кодт, Вы писали:

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


К>Критичным для gcc является нетривиальный деструктор у B — из-за нетривиального деструктора у queue<C>.

К>Можно упростить:
К>
К>struct B {
К>  B(int,int) {}
К>  B(const B&) = delete;
К>  ~B() {}
К>};
К>

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

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


А как это связано с инициализацией массива? Потому что, если заменить массив
B arrB[3];

на один экземпляр
B instB;

и соответственно провести инициализацию в конструкторе вместо
arrB{ {p1+1, p2+2}, {p1+3, p2+4}, {p1+5, p2+6} }

как
instB {p1+1, p2+2}

то ошибка исчезает.
Что-то я не понимаю...
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.