Floating point types default to NaN?
Steven Schveighoffer
schveiguy at yahoo.com
Mon Nov 27 14:58:42 UTC 2017
On 11/25/17 5:13 PM, Adam D. Ruppe wrote:
> On Saturday, 25 November 2017 at 16:16:52 UTC, A Guy With a Question wrote:
>> If D chooses it's defaults to make errors stick out, why not just
>> error at declaration if they don't explicitly set it to something.
>
> It technically did:
>
> https://dlang.org/spec/function.html#local-variables
>
> "It is an error to use a local variable without first assigning it a
> value. The implementation may not always be able to detect these cases.
> Other language compilers sometimes issue a warning for this, but since
> it is always a bug, it should be an error. "
>
>
> But that paragraph was never implemented (it is a bit easier said than
> done to actually detect given if conditions and stuff too, especially in
> the early days of D when the compiler didn't even make any effort to
> track such things, though it does now...). The compiler author took the
> easy way out of initializing them to invalid values instead.
>
> While it is more realistic to implement technically now than it was
> years ago when the current behavior got in, I think we're at the point
> now that so many people use it as a convenience thing on ints and nulls
> that there'd be hell to pay if the compiler actually started calling it
> an error :(
>
I rely on the default value initialization all the time! I don't know
how that would jive with structs, since they are technically local
variables, but usually are valid without initialization.
What about AAs? Would you have to do = []?
-Steve
More information about the Digitalmars-d-learn
mailing list