Thread overview | |||||
---|---|---|---|---|---|
|
December 11, 2015 Using std.math: FloatingPointControl.enableExceptions | ||||
---|---|---|---|---|
| ||||
Hello. I'm trying to figure out how to use FloatingPointControl.enableExceptions. Upon enabling severeExceptions I would expect the division by zero to be signaled, but neither do I get a SIGFPE nor does ieeeFlags show the exception having been signaled. What am I doing wrong? import std.stdio; import std.math; void main() { FloatingPointControl fc; fc.enableExceptions(fc.severeExceptions); real a = 1.0 / 0.0; writeln(ieeeFlags.divByZero); } -- Shriramana Sharma, Penguin #395953 |
December 11, 2015 Re: Using std.math: FloatingPointControl.enableExceptions | ||||
---|---|---|---|---|
| ||||
Posted in reply to Shriramana Sharma | On Friday, 11 December 2015 at 06:28:09 UTC, Shriramana Sharma wrote:
> Hello. I'm trying to figure out how to use FloatingPointControl.enableExceptions. Upon enabling severeExceptions I would expect the division by zero to be signaled, but neither do I get a SIGFPE nor does ieeeFlags show the exception having been signaled. What am I doing wrong?
>
> import std.stdio;
> import std.math;
> void main()
> {
> FloatingPointControl fc;
> fc.enableExceptions(fc.severeExceptions);
> real a = 1.0 / 0.0;
> writeln(ieeeFlags.divByZero);
Constant folding: a is evaluated at compile time to + infinity.
|
December 11, 2015 Re: Using std.math: FloatingPointControl.enableExceptions | ||||
---|---|---|---|---|
| ||||
Posted in reply to rumbu | rumbu wrote: > Constant folding: a is evaluated at compile time to + infinity. Hmm... I guess the compiler figures that if someone is hardcoding that expression then they don't want to see an exception. Thanks for the explanation. -- Shriramana Sharma, Penguin #395953 |
Copyright © 1999-2021 by the D Language Foundation