Re[4]: compiler error: no appropriate default constructor av
От: Bender Bending Rodriguez Россия  
Дата: 02.04.10 15:55
Оценка:
Здравствуйте, rus blood, Вы писали:

RB>А ты хочешь, чтобы твой pair_t::second копировался по значению???

RB>А если там будет вектор на миллион интов?
RB>Да в твоем внешнем векторе будет миллион пар...

Дело не в миллионах.
Дело в том, что сам vector да и vector::push_back не предъявляют к элементам
такого требования как наличиее конструктора по умолчанию.
сурово требуется только:

23.1.3
The type of objects stored in these components must meet the requirements of CopyConstructible
types (20.1.3), and the additional requirements of Assignable types.


а тут такая незадача образовалась
именно это и послужило причиной для написания поста.

а то, что новая реализация stl от Dinkumware пытается что-то оптимизировать — так я только за.
только надо как-то разумно обрабатывать и вот такой случай.
не всегда же возможно наличие конструктора по умолчанию.

RB>Ну, переопредели тогда _Move_operation_category для своего pair_t и будет тебе "счастье"...

RB>Может, проще все таки сделать ctor по-умолчанию?

Да, конструктор по умолчанию — это самое быстрое и простое решение в моём случае.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.