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