std::exception
требует, чтобы его конструктор был throw()
. Тем не менее std::runtime_error
принимает std::string
как свой аргумент, что указывает на то, что он где-то хранит std::string
. Следовательно, назначение или создание копии должно происходить где-то. А для std::string
это не операция nothrow
.
Как тогда runtime_error::runtime_error
встречается throw()
?
(Для контекста я реализую тип исключения и хочу сохранить несколько std::string
с сайта вызова, и я хочу сделать это правильно...)