#include #include int main() { using ctx_t = boost::context::execution_context; ctx_t ctx([](ctx_t c) { try { *(int*)0 = 0; } catch (std::exception &e) { } return c; }); auto f = [&] { auto f2 = [&] { ctx = ctx(); }; __try { f2(); } __except (EXCEPTION_EXECUTE_HANDLER) { printf("hi!"); } }; f(); }