Re[9]: std::vector UB или баг?
От: b0r3d0m  
Дата: 29.06.16 21:42
Оценка:
U>вот кстати первый ответ тут от STL: https://www.reddit.com/r/cpp/comments/vog1p/a_commonly_unknown_stdvector_pitfall/

U>а он говорит следующее: это валидный код, а в студии имеем баг

U>

U>VC11 currently has a bug where v.emplace_back(v[0]) fails


U>я склонен ему доверять и вам того же советую


Вполне возможно, что баг у них всё же есть. Может быть, наблюдаемое ТС поведение не было запланировано разработчиками стандартной библиотеки от Microsoft, однако факт остаётся фактом -- никто в стандарте нам ничего по этому поводу не обещал.

Всё, что нам сказано, это (цитирую):

ISO/IEC 14882:2011

23.3.6.5 vector modifiers [vector.modifiers]

Remarks: Causes reallocation if the new size is greater than the old capacity. If no reallocation happens,
all the iterators and references before the insertion point remain valid


До, во время, после -- это уже детали реализации.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.