diff --git a/src/googletest.h b/src/googletest.h index 6d023c6..801b559 100644 --- a/src/googletest.h +++ b/src/googletest.h @@ -37,18 +37,16 @@ #include "utilities.h" -#include -#include -#include - +#include +#include +#include +#include +#include #include #include #include #include -#include -#include - #include #include #include @@ -58,6 +56,12 @@ #include "base/commandlineflags.h" +#if __cplusplus < 201103L && !defined(_MSC_VER) +#define GOOGLE_GLOG_THROW_BAD_ALLOC throw (std::bad_alloc) +#else +#define GOOGLE_GLOG_THROW_BAD_ALLOC +#endif + using std::map; using std::string; using std::vector; @@ -601,21 +605,21 @@ void (*g_new_hook)() = NULL; _END_GOOGLE_NAMESPACE_ -void* operator new(size_t size) { +void* operator new(size_t size) GOOGLE_GLOG_THROW_BAD_ALLOC { if (GOOGLE_NAMESPACE::g_new_hook) { GOOGLE_NAMESPACE::g_new_hook(); } return malloc(size); } -void* operator new[](size_t size) { +void* operator new[](size_t size) GOOGLE_GLOG_THROW_BAD_ALLOC { return ::operator new(size); } -void operator delete(void* p) { +void operator delete(void* p) throw() { free(p); } -void operator delete[](void* p) { +void operator delete[](void* p) throw() { ::operator delete(p); }