Правило не встраивать std :: string в исключения все еще выполняется с конструкторами перемещения?

Некоторое время назад я слышал, что я не должен создавать классы исключений, которые будут иметь поляstd::string тип. Это то чтоСайт Boost говорит, Обоснование заключается в том, чтоstd::string Конструктор копирования может выдать исключение, если выделение памяти завершилось неудачно, и если исключение выдается до того, как обработано текущее исключение, программа завершается.

Однако, это все еще держится в мире конструкторов движения? Не будет ли использоваться конструктор перемещения вместо конструктора копирования при создании исключения? Правильно ли я понимаю, что в C ++ 11 распределение памяти не происходит, исключений не существует, иstd::string сейчас абсолютно нормально в классах исключений?

Ответы на вопрос(2)

Ваш ответ на вопрос