[Windows] Work around missing C++11 features of MSVC by providing an implementation for
authorbfulgham@apple.com <bfulgham@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 26 Sep 2013 23:37:39 +0000 (23:37 +0000)
committerbfulgham@apple.com <bfulgham@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 26 Sep 2013 23:37:39 +0000 (23:37 +0000)
std::is_trivially_destructible based on the existing std::has_trivial_destructor.

Rubber-stamped by Anders Carlsson.

* wtf/StdLibExtras.h: Add implementation for is_trivially_destructable for MSVC 2010 and prior.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@156516 268f45cc-cd09-0410-ab3c-d52691b4dbfc

Source/WTF/ChangeLog
Source/WTF/wtf/StdLibExtras.h

index 566dfa9ac1b9bf2a904206452ebc7e9edfa81e48..b0cf20c3863135247254224142364fa57ba9586f 100644 (file)
@@ -1,3 +1,12 @@
+2013-09-26  Brent Fulgham  <bfulgham@apple.com>
+
+        [Windows] Work around missing C++11 features of MSVC by providing an implementation for
+        std::is_trivially_destructible based on the existing std::has_trivial_destructor.
+
+        Rubber-stamped by Anders Carlsson.
+
+        * wtf/StdLibExtras.h: Add implementation for is_trivially_destructable for MSVC 2010 and prior.
+
 2013-09-26  Anders Carlsson  <andersca@apple.com>
 
         Remove needsDestruction from vector and hash traits
 2013-09-26  Anders Carlsson  <andersca@apple.com>
 
         Remove needsDestruction from vector and hash traits
index fbfc7197dfe4e4e492834adf296e3f855e41470f..d259829ee702df4e272692172a1e759539311010 100644 (file)
@@ -305,6 +305,14 @@ inline void* operator new(size_t, NotNullTag, void* location)
     return location;
 }
 
     return location;
 }
 
+#if defined(_MSC_VER) && _MSC_VER < 1700 
+// Work-around for Pre-C++11 syntax in MSVC 2010 and prior
+namespace std {
+    template<class T> struct is_trivially_destructible {
+        static const bool value = std::has_trivial_destructor<T>::value;
+    };
+}
+#endif
 
 // This adds various C++14 features for versions of the STL that may not yet have them.
 namespace std {
 
 // This adds various C++14 features for versions of the STL that may not yet have them.
 namespace std {