Re[3]: signed/unsigned mismatch
От: Кодт Россия  
Дата: 20.08.08 13:39
Оценка: 2 (1) +1
Здравствуйте, igna, Вы писали:

I>
W>>if (source.size() + first > last) // так нормально?
I>


I>Интересно, но не работает, если sizeof(source.size()) > sizeof(first). Ситуация не самая вероятная, но все же возможная.


Не работает по другой причине: first+source.size() может вылететь за пределы области определения этих итераторов. В этом случае поведение не определено, или, в лучшем случае, не специфицировано.
В исходном примере копировали вектор со списком. Сделайте advance(first,source.size()) за конец списка, узнаете всякое нехорошее.
Перекуём баги на фичи!
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.