Re: compiler error: no appropriate default constructor avail
От: rus blood Россия  
Дата: 02.04.10 14:02
Оценка: 2 (1)
Здравствуйте, Bender Bending Rodriguez, Вы писали:

BBR>но с какого перепуга мы сюда вообще попадаем, мне пока неочевидно


Это реализация move-стратегии при расширении буфера вектора.
Вектор пытается не скопировать, а перетащить данные из старого буфера в новый.
Для этого буфер предварительно заполняется пустыми объектами, после чего выполняется swap данных.

У меня нет 2008-й, и ты не привел полный список параметров, но по коду 2005-й,
template<class _InIt, class _FwdIt, class _Alloc>
inline    _FwdIt _Uninit_move(

соответствует версии _Uninit_move для типов с поддержкой _Swap_move_tag.
Категория move определяется выше по стеку вызовов, и задается явным перечислением типов.

По-видимому, в 2008-й std::pair объявлен всегда поддерживающим swap ...
Имею скафандр — готов путешествовать!
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.