Альтернатива для std:: exception (const char *) нестандартного конструктора

В коде Visual С++ используется конструктор std:: exception, который принимает строку, и я пытаюсь перенести код в Linux/g++. Какой класс исключений я должен использовать?

Ответ 1

Конструктор Microsoft Visual С++ std::exception(const char*) нестандартен. Хотя в стандартной библиотеке С++ std:: exception имеет метод const char* what() const, он не предоставляет способ указания строки, кроме переопределения.

Вы должны переписать свой код, чтобы использовать std::runtime_error или один из других классов из <stdexcept> в качестве альтернативы. Существующий код, который ловит std:: exception, не обязательно должен быть изменен, конечно, поскольку из него выводится std:: runtime_error.