On Tuesday, 14 August 2012 at 15:24:30 UTC, F i L wrote:
On Tuesday, 14 August 2012 at 14:46:30 UTC, Simen Kjaeraas
wrote:
On Tue, 14 Aug 2012 16:32:25 +0200, F i L
<witte2...@gmail.com> wrote:
class Foo
{
float x; // I think this should be 0.0f
// Walter thinks it should be NaN
}
In this situation static analysis can't help catch issues,
and we're forced to rely on a default value of some kind.
Really? We can catch (or, should be able to) missing
initialization
of stuff with @disable this(), but not floats?
Classes have constructors, which lend themselves perfectly to
doing
exactly this (just pretend the member is a local variable).
Perhaps there are problems with structs without disabled
default
constructors, but even those are trivially solvable by
requiring
a default value at declaration time.
You know, I never actually thought about it much, but I think
you're right. I guess the same rules could apply to type fields.
C# structs, as you might recall, enforce definite initialization.
:)
We could do the same for structs and classes... what I said
doesn't just apply to local variables.