http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50862
--- Comment #12 from Jonathan Wakely <redi at gcc dot gnu.org> 2011-10-26 13:02:31 UTC --- (In reply to comment #11) > i'm not sure about uncaught_exception(). i remember reading in Herb Sutter's > that it's usage should be avoided, since it has some flaw, that makes it's > return value unsure. http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#1368 ? > but this was written in times of C++03 and i can't > remember what was the reasoning behind it (threading perhaps?), so i do not > know if it still holds for C++11 as well or not. any way there is still a > possibility of exception throwing from d-tor, which would be better to avoid. Why? In general, yes. But in this specific case I don't see a problem. it's a local class, noone can misuse it elsewhere. The value of uncaught_exception is well defined at the point where I want to call it. > but perhaps we'd be able to come out with some better/cleaner/shorter solution > for this problem? Comment 10 :) In practice, _M_cond.wait() is not going to throw (the error conditions for pthread_cond_wait cannot happen here) so this is irrelevant.