NaNs Just Don't Get No Respect
Michel Fortin
michel.fortin at michelf.ca
Sun Aug 19 07:14:00 PDT 2012
On 2012-08-19 05:54:49 +0000, Walter Bright <newshound2 at digitalmars.com> said:
> On 8/18/2012 9:21 PM, Nick Sabalausky wrote:
>> After actually *using* both D (default-initialization) and C#
>> (statically/conservatively ensure things can't be accessed without
>> being explicitly inited), and I'm convinced the benefits of the static
>> checks easily outweigh the fear of a knee-jerk "=0".
>
> I'm less willing to throw default initialization out - I like it & rely
> on it. The C# approach pretty much ends default initialization,
> including for user defined types.
I like default initialization too, and I rely on it. By that I mean
that all the time I write "size_t count;" and assume it'll be default
initialized to zero. I like it because it's less typing and it's
simple: if I don't assign anything it's zero. I can't do that for
floats or chars, because the default initialization gives me a unusable
value. In my mind C#-style conservative flow analysis errors are better
than default initialization to a bogus value because they catch the
problem at compile time. But on the other side I'd rather not give up
on integer default initialization to zero, as I actually prefer this
over everything else.
So Walter, which default initialization do you like an rely on?
As I said, personally, I'd have everything initialized to zero by
default. But at this point you can't really change this even if you
want to: some program somewhere might rely on float being initialized
to NaN by default and might start to give erroneous results if you
change the default. (Notice the irony?)
--
Michel Fortin
michel.fortin at michelf.ca
http://michelf.ca/
More information about the Digitalmars-d-announce
mailing list