I'm wondering about this:
void main()
{
import std.math;
FloatingPointControl fpc;
fpc.enableExceptions(FloatingPointControl.severeExceptions);
float foo;
}
Declaring uninitialized floating point variables after enabling severe
exceptions will throw at runtime:
object.Error: Invalid Floating Point Operation
I don't know whether this is intentional or not, if it is then:
Why not make this an optional compile-time warning as well? The
compiler is smart enough to figure out that foo was declared
uninitialized. Perhaps we could add another switch for this purpose.
I'm running into a lot of these uninitialized floating-point issues
lately, and that's exactly why I'm using FloatingPointControl. However
this is only useful at runtime. If the compiler can catch some of
these at compile-time via some optional switch that would make the
situation much better.