The same code is working fine on gcc 4.5.2 but when trying to compile it on gcc 4.1.2, I get the error ‘runtime_error’ was not declared in this scope
.
I do have
#include <stdexcept>
Is this a problem with gcc 4.1.2?
Code excerpt
// Constructor
if (resource cannot be acquired)
throw std::runtime_error("Blah Blah");
You should use new in C++ code rather than malloc so it becomes new GLubyte*[RESOURCE_LENGTH] instead. When you #include <cstdlib> it will load malloc into namespace std , so refer to std::malloc (or #include <stdlib. h> instead).
class runtime_error; Defines a type of object to be thrown as exception. It reports errors that are due to events beyond the scope of the program and can not be easily predicted.
Visual Studio says that runtime_error
should be defined in <stdexcept>
, so I'm guessing that GCC 4.1.2 is just out of date here.
Do you have using namespace std;
or using std::runtime_error;
? If not, then you need to fully qualify the name and use std::runtime_error
rather than just runtime_error
.
gcc 4.1 is relatively old. 4.5 is more standard compliant. Maybe you triggered a compiler's bug
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With