Jelajahi Sumber

Merge pull request #1645 from nlandry/upstream-luagen

luagen: "noexcept" not recognized in VC++
Sean Taylor 11 tahun lalu
induk
melakukan
0349f3ba77
2 mengubah file dengan 23 tambahan dan 12 penghapusan
  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