#include <cassert> #include <exception> void throw_exception() { throw 1; } int main() { std::set_unexpected(throw_exception); try { std::unexpected(); // it is OK to throw exception from std::unexpected() assert(false); } catch (int) { assert(true); } catch (...) { assert(false); } return 0; }