2011-02-01 10 views
17

मैं कोशिश की है क्यूटी (4.6.3) + MinGW का उपयोग कर निम्न कोड को संकलित करने के:लापता std :: क्यूटी + MinGW में runtime_error

#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 

इस का उपयोग करते हुए क्यूटी + MSVC2008 संकलक संकलन करने की कोशिश की - ठीक काम करता है।

यह एक मानक अपवाद है, कोई जानकारी नहीं है कि क्यों गुम है।

उत्तर

44

<exception> केवल आधार std::exception कक्षा को परिभाषित करता है; यदि आप std::runtime_error जैसे बच्चे वर्ग चाहते हैं, तो आपको <stdexcept> शीर्षलेख शामिल करना होगा।

+0

+1 AFAIK, मौजूद नहीं है। – Simone

+4

यह मौजूद है, और इसमें 'std :: अपवाद' वर्ग शामिल है, जबकि ' 'में मानक बाल अपवाद वर्ग शामिल हैं। http://www.cplusplus.com/reference/std/exception/ – CharlesB

+0

+1000 यह 'std :: invalid_argument' (उबंटू, जीसीसी 4.7 पर) का उपयोग करते समय मुझे पागल कर रहा था। धन्यवाद! –