Ответ 1
<exception>
определяет только базовый класс std::exception
; если вам нужны дочерние классы типа std::runtime_error
, вы должны включить заголовок <stdexcept>
.
Я попытался скомпилировать следующий код с помощью Qt (4.6.3) + MinGW:
#include <QtCore/QCoreApplication>
#include <exception>
int main(int argc, char *argv[])
{
throw std::runtime_error("");
QCoreApplication a(argc, argv);
return a.exec();
}
... и получил эту ошибку:
..\untitled11\main.cpp:6: error: 'runtime_error' is not a member of 'std'
Проект создан с нуля (консольное приложение), файл pro:
QT += core
QT -= gui
TARGET = untitled11
CONFIG += console
CONFIG -= app_bundle
TEMPLATE = app
SOURCES += main.cpp
Пробовал компилировать это с помощью компилятора Qt + MSVC2008 - отлично работает.
Это стандартное исключение, понятия не имею, почему отсутствует.
<exception>
определяет только базовый класс std::exception
; если вам нужны дочерние классы типа std::runtime_error
, вы должны включить заголовок <stdexcept>
.