floats default to NaN... why?
F i L
witte2008 at gmail.com
Sat Apr 14 10:05:01 PDT 2012
On Saturday, 14 April 2012 at 15:35:13 UTC, Andrej Mitrovic wrote:
> On 4/14/12, F i L <witte2008 at gmail.com> wrote:
>> This is exactly what I'm trying to get at.
>
> Anyway it's not all bad news since we can use a workaround:
>
> struct Float {
> float payload = 0.0;
> alias payload this;
> }
>
> void main() {
> Float x; // acts as a float, is initialized to 0.0
> }
>
> Not pretty, but it comes in handy.
Lol, that's kinda an interesting idea:
struct var(T, T def) {
T payload = def;
alias payload this;
}
alias var!(float, 0.0f) Float;
alias var!(double, 0.0) Double;
alias var!(real, 0.0) Real;
alias var!(char, ' ') Char;
void main() {
Float f;
assert(f == 0.0f);
}
a Hack though, since it doesn't work with 'auto'. I still think
it should be the other way around, and this should be used to
Default to NaN.
More information about the Digitalmars-d-learn
mailing list