http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51296
--- Comment #22 from Jonathan Wakely <redi at gcc dot gnu.org> 2012-01-12 16:16:30 UTC --- (In reply to comment #21) > The std/mutex change is a hack to avoid > > In file included from > /var/gcc/regression/trunk/5.1b-gcc/build/alpha-dec-osf5.1b/libstdc++-v3/include/future:40:0, > from > /vol/gcc/src/hg/trunk/local/libstdc++-v3/testsuite/30_threads/async/async.cc:27: > /var/gcc/regression/trunk/5.1b-gcc/build/alpha-dec-osf5.1b/libstdc++-v3/include/mutex:160:5: > error: function 'std::mutex::mutex()' defaulted on its first declaration with > an exception-specification that differs from the implicit declaration > 'std::mutex::mutex()' Does adding 'noexcept' to ~__mutex_base() make that hack unnecessary? The destructor should be implicitly noexcept, but G++ doesn't implement that yet (PR 50043) so adding 'noexcept' there is ok.