Am 17.03.2015 um 19:18 schrieb Steven Watanabe:
What about the warning from execution_monitor.cpp saying that /EHa *is* required?
It isn't required. First of all, _set_se_translator requires /EHa at the /catch/ site, not when it is called. If /EHa is not enabled at the catch site, _set_se_translator has no effect. Boost.Test only uses _set_se_translator to neutralize one of the effects of /EHa, so it's actually perfectly okay.
Exactly. I've been using _set_se_translator in various projects in the past and I never had to build with /EHa except for the tiny fraction of code at the catch site. C++ exceptions are nothing but Windows structured exceptions with a special tag. Therefore it doesn't matter at all which build option is used at the throw site. You can even get away without the /EHa and _set_se_translator shebang if you stick with __try/__except and cast the exception info into a std::exception_ptr or do whatever else you have to. Ciao Dani