I just noticed over on
http://en.cppreference.com/w/cpp/error/uncaught_exception
that C++17 will replace std::uncaught_exception(), which return
std::uncaught_exception() only detects whether the stack is unwinding. In a paper by Herb Sutter, he points out that this does not reliably indicate that there is an active exception. Herb opines that this is "almost" useful. I have encountered a situation where this is indeed ambiguous, which is what led me to this post.
std::uncaught_exceptions() is specified as returning the number of active exceptions, which is actually useful.