--- src/include/cbthreadpool.h.orig 2013-11-17 20:34:15.000000000 +0100 +++ src/include/cbthreadpool.h 2015-09-16 21:19:53.385265000 +0200 @@ -15,6 +15,12 @@ #include "settings.h" #include "prep.h" +#if defined(__has_feature) && __has_feature(cxx_noexcept) +#define NOEXCEPT noexcept +#else +#define NOEXCEPT throw() +#endif + /// A Thread Pool implementation class DLLIMPORT cbThreadPool { @@ -94,11 +100,11 @@ class DLLIMPORT cbThreadPool public: explicit CountedPtr(T *p = 0); - CountedPtr(const CountedPtr &p) throw(); - ~CountedPtr() throw(); - CountedPtr &operator = (const CountedPtr &p) throw(); - T &operator * () const throw(); - T *operator -> () const throw(); + CountedPtr(const CountedPtr &p) NOEXCEPT; + ~CountedPtr() NOEXCEPT; + CountedPtr &operator = (const CountedPtr &p) NOEXCEPT; + T &operator * () const NOEXCEPT; + T *operator -> () const NOEXCEPT; private: void dispose(); @@ -281,7 +287,7 @@ inline cbThreadPool::CountedPtr::Coun } template -inline cbThreadPool::CountedPtr::CountedPtr(const CountedPtr &p) throw() +inline cbThreadPool::CountedPtr::CountedPtr(const CountedPtr &p) NOEXCEPT : ptr(p.ptr), count(p.count) { @@ -289,13 +295,13 @@ inline cbThreadPool::CountedPtr::Coun } template -inline cbThreadPool::CountedPtr::~CountedPtr() throw() +inline cbThreadPool::CountedPtr::~CountedPtr() NOEXCEPT { dispose(); } template -inline cbThreadPool::CountedPtr &cbThreadPool::CountedPtr::operator = (const CountedPtr &p) throw() +inline cbThreadPool::CountedPtr &cbThreadPool::CountedPtr::operator = (const CountedPtr &p) NOEXCEPT { if (this != &p) { @@ -309,13 +315,13 @@ inline cbThreadPool::CountedPtr &cbTh } template -inline T &cbThreadPool::CountedPtr::operator * () const throw() +inline T &cbThreadPool::CountedPtr::operator * () const NOEXCEPT { return *ptr; } template -inline T *cbThreadPool::CountedPtr::operator -> () const throw() +inline T *cbThreadPool::CountedPtr::operator -> () const NOEXCEPT { return ptr; }