int nan

BCS none at anon.com
Sat Jun 27 22:10:18 PDT 2009


Hello Denis,

> On Sat, 27 Jun 2009 17:50:11 +0400, BCS <none at anon.com> wrote:
> 
>> Hello Nick,
>> 
>>> Interesting idea, but IMO using NaN as a default initializer is just
>>> a crutch for not having a real system of compile-time
>>> detecting/preventing of uninitialized variables from being read
>>> (C#'s system for this works very well in my experience).
>>> 
>> I think you can prove that it is impossible to do this totally
>> correctly:
>> 
>> int i;
>> 
>> for(int j = foo(); j > 0; j--) i = bar(j);   // what if foo() returns
>> -5?
>> 
> This code doesn't compile in C# and fails with the following error at
> first attempt to use 'i':
> 
> error CS0165: Use of unassigned local variable 'i'
> 

And if foo() is never <=0 then the error is valid, but incorrect. I like 
the int.nan idea better. Not one unassigned local variable error I have ever 
seen has pointed me at a bug.





More information about the Digitalmars-d mailing list