Почему операторы назначения перемещения контейнеров не исключаются?
Я заметил, что 'std::string
с (действительноstd::basic_string
s) оператор присваивания перемещенияnoexcept
, Это имеет смысл для меня. Но потом я заметил, что ни один из стандартных контейнеров (например,,,,std::vector
std::deque
std::list
std::map
) объявляет свой оператор присваивания перемещенияnoexcept
, Это имеет меньшее значение для меня.std::vector
например, обычно реализуется в виде трех указателей, и указателям, безусловно, можно назначать перемещение без исключения. Тогда я подумал, что, возможно, проблема с перемещением контейнераРаспределитель, ноstd::string
у меня тоже есть распределители, так что если бы это было проблемой, я быЯ ожидаю, что это повлияет.std::string
Так почему жеstd::string
Оператор присваивания ходовnoexcept
И все же операторы присваивания перемещения для стандартных контейнеров не являются?