2011-02-01 9 views
17

でruntime_error私はQtの(4.6.3)+ MinGWのを使用して、次のコードをコンパイルしようとしました:行方不明のstd :: QT +の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' 

スクラッチ(コンソールアプリケーション)から作成されたプロジェクトは、プロファイル:

QT  += core 

QT  -= gui 

TARGET = untitled11 
CONFIG += console 
CONFIG -= app_bundle 

TEMPLATE = app 

SOURCES += main.cpp 

は、この使用してQtの+ MSVC2008コンパイラをコンパイルしようとした - 正常に動作します。

これは標準的な例外で、なぜ欠けているのかわかりません。

答えて

44

<exception>は、ベースstd::exceptionクラスのみを定義します。 std::runtime_errorのような子クラスが必要な場合は、<stdexcept>ヘッダーを含める必要があります。

+0

+1 AFAIK、は存在しません。 – Simone

+4

これは存在し、ベースの 'std :: exception'クラスを含み、' 'は標準的な子例外クラスを含みます。 http://www.cplusplus.com/reference/std/exception/ – CharlesB

+0

+1000 'std :: invalid_argument'(Ubuntu上では、gcc 4.7)を使用していると、狂ってしまいました。ありがとうございました! –

関連する問題