g ++ 4.1.2没有在此范围内声明runtime_error

相同的代码在gcc 4.5.2上正常工作,但是当试图在gcc 4.1.2上编译时,我得到错误'runtime_error' was not declared in this scope

我有

 #include <stdexcept> 

这是gcc 4.1.2的问题吗?

代码摘录

 // Constructor if (resource cannot be acquired) throw std::runtime_error("Blah Blah"); 

Solutions Collecting From Web of "g ++ 4.1.2没有在此范围内声明runtime_error"

Visual Studio认为应该在<stdexcept>定义runtime_error ,所以我猜GCC 4.1.2在这里已经过时了。

你有using namespace std;using std::runtime_error; ? 如果没有,那么你需要完全限定名称,并使用std::runtime_error而不仅仅是runtime_error

gcc 4.1比较老。 4.5更符合标准。 也许你触发了一个编译器的错误