Prechádzať zdrojové kódy

"noexcept" not recognized in VC++

For MSVC use _NOEXCEPT, everywhere else use noexcept
Nick Landry 11 rokov pred
rodič
commit
d0cadc3a21
2 zmenil súbory, kde vykonal 23 pridanie a 12 odobranie
  1. 11 6
      tools/luagen/src/DebugNew.cpp
  2. 12 6
      tools/luagen/src/DebugNew.h

+ 11 - 6
tools/luagen/src/DebugNew.cpp

@@ -34,6 +34,11 @@ void debugFree(void* p);
 
 #ifdef _MSC_VER
 #pragma warning( disable : 4290 )
+
+#include <yvals.h>
+#define NOEXCEPT _NOEXCEPT
+#else
+#define NOEXCEPT noexcept
 #endif
 
 void* operator new (std::size_t size, const char* file, int line)
@@ -56,32 +61,32 @@ void* operator new[] (std::size_t size)
     return operator new (size, "", 0);
 }
 
-void* operator new (std::size_t size, const std::nothrow_t& nothrow_value) noexcept
+void* operator new (std::size_t size, const std::nothrow_t& nothrow_value) NOEXCEPT
 {
     return operator new (size, "", 0);
 }
 
-void* operator new[] (std::size_t size, const std::nothrow_t& nothrow_value) noexcept
+void* operator new[](std::size_t size, const std::nothrow_t& nothrow_value) NOEXCEPT
 {
     return operator new (size, "", 0);
 }
 
-void operator delete (void* p) noexcept
+void operator delete (void* p) NOEXCEPT
 {
     debugFree(p);
 }
 
-void operator delete[] (void* p) noexcept
+void operator delete[](void* p) NOEXCEPT
 {
     operator delete (p);
 }
 
-void operator delete (void* p, const char* file, int line) noexcept
+void operator delete (void* p, const char* file, int line) NOEXCEPT
 {
     operator delete (p);
 }
 
-void operator delete[] (void* p, const char* file, int line) noexcept
+void operator delete[](void* p, const char* file, int line) NOEXCEPT
 {
     operator delete (p);
 }

+ 12 - 6
tools/luagen/src/DebugNew.h

@@ -13,17 +13,23 @@ extern void printMemoryLeaks();
 // global new/delete operator overloads
 #ifdef _MSC_VER
 #pragma warning( disable : 4290 ) // C++ exception specification ignored.
+#include <yvals.h>
+#define NOEXCEPT _NOEXCEPT
+#else
+#define NOEXCEPT noexcept
 #endif
+
 void* operator new (std::size_t size, const char* file, int line);
 void* operator new[] (std::size_t size, const char* file, int line);
 void* operator new (std::size_t size);
 void* operator new[] (std::size_t size);
-void* operator new (std::size_t size, const std::nothrow_t& nothrow_value) noexcept;
-void* operator new[] (std::size_t size, const std::nothrow_t& nothrow_value) noexcept;
-void operator delete (void* p) noexcept;
-void operator delete[] (void* p) noexcept;
-void operator delete (void* p, const char* file, int line) noexcept;
-void operator delete[] (void* p, const char* file, int line) noexcept;
+void* operator new (std::size_t size, const std::nothrow_t& nothrow_value) NOEXCEPT;
+void* operator new[](std::size_t size, const std::nothrow_t& nothrow_value) NOEXCEPT;
+void operator delete (void* p) NOEXCEPT;
+void operator delete[](void* p) NOEXCEPT;
+void operator delete (void* p, const char* file, int line) NOEXCEPT;
+void operator delete[](void* p, const char* file, int line) NOEXCEPT;
+
 #ifdef _MSC_VER
 #pragma warning( default : 4290 )
 #endif