Subject: [boost] enabling/disabling floating point exceptions
From: Gennadiy Rozental (rogeeff_at_[hidden])
Date: 2009-08-31 03:00:08


Hi guys,

I am looking to complete cross platform implementation of
enabling/disabling logic in boost::execution_monitor. It looks like
there is no standard interface available. I'm using _controlfp interface
now on Windows. I also found these non-standard extensions:

* feenableexcep/fedisableexcept available with glib 2.2
* fesettrapenable avaialble in Dinkumware (implementation of STL?) and HP
* sun has something called fex_set_handling. not sure when it's
available though
* header fpu_control.h. Not sure where it's available though.
* MAC OS X has something called _MM_SET_EXCEPTION_MASK in xmmintrin.h

It also seems that in some cases the switch is compile time only (using
compilation option).

Would anyone care to extend this list/comment on it's applicability
and/or correctness?

Another change I am considering is to split floating point exception
catching from other system exceptions. It seems perfectly valid scenario
  to set catch_system_error to false (thus avoid catching access
violations etc) but still willing to catch and process floating point
exception. What do you think?

Gennadiy