c++: fix C++11 compatibility
authorMichael Wallner <mike@php.net>
Mon, 6 Jan 2020 11:17:34 +0000 (12:17 +0100)
committerMichael Wallner <mike@php.net>
Mon, 6 Jan 2020 11:17:34 +0000 (12:17 +0100)
- auto_ptr has been deprecated
- destructors are noexcept by default

libtest/main.cc
libtest/thread.hpp

index 3084ca4b4c8d79771a00383ca128a973bd6b50fa..b93f75708c1f7b12e6d45c430e0201af70420bee 100644 (file)
 #pragma GCC diagnostic ignored "-Wold-style-cast"
 #endif
 
+#if __cplusplus >= 201103L
+# define UNIQUE_PTR std::unique_ptr
+#else
+# define UNIQUE_PTR std::auto_ptr
+#endif
+
 using namespace libtest;
 
 static void stats_print(libtest::Framework *frame)
@@ -297,7 +303,7 @@ int main(int argc, char *argv[])
         return EXIT_FAILURE;
       }
 
-      std::auto_ptr<libtest::Framework> frame(new libtest::Framework(signal, binary_name, collection_to_run, wildcard));
+      UNIQUE_PTR<libtest::Framework> frame(new libtest::Framework(signal, binary_name, collection_to_run, wildcard));
 
       // Run create(), bail on error.
       {
index b09da7fcef266821e83eed7b5798368dc1b0b570..640cb66a06e2f3aac0c6e4ed750ab8b8e21fb356 100644 (file)
 
 #include <pthread.h>
 
+#if __cplusplus < 201103L
+# define noexcept(a)
+#endif
+
 namespace libtest
 {
 namespace thread
@@ -52,7 +56,7 @@ public:
     _err= pthread_mutex_init(&_mutex, NULL);
   }
 
-  ~Mutex()
+  ~Mutex() noexcept(false)
   {
     if ((_err= pthread_mutex_destroy(&_mutex)))
     {
@@ -84,7 +88,7 @@ public:
     init();
   }
 
-  ~ScopedLock()
+  ~ScopedLock() noexcept(false)
   {
     int err;
     if ((err= pthread_mutex_unlock(_mutex.handle())))
@@ -124,7 +128,7 @@ public:
     }
   }
 
-  ~Condition()
+  ~Condition() noexcept(false)
   {
     int err;
     if ((err= pthread_cond_destroy(&_cond)))