Ответ 1
(Отмена от комментария)
std::string
не является контейнером – тот факт, что basic_string
не описан в главе Containers library
(§23) FDIS, является хорошим ключом.; -]
Из N3290, [container.requirements.general]:
Выражение
a.swap(b)
для контейнеров a и b стандартного типа контейнера, отличного отarray
, должно обменивать значения a и b, не вызывая никаких операций перемещения, копирования или свопинга для отдельных элементов контейнера.
Как это взаимодействует с оптимизацией небольших строк? Забыли ли они добавить std::string
?
(Отмена от комментария)
std::string
не является контейнером – тот факт, что basic_string
не описан в главе Containers library
(§23) FDIS, является хорошим ключом.; -]