On Thursday, 20 June 2019 at 07:57:25 UTC, KnightMare wrote:
On Thursday, 20 June 2019 at 01:32:04 UTC, matheus wrote:
import std.stdio;
import std.array;
void main(){
auto s = uninitializedArray!(float[])(100);
s[] = 0.0f;
writeln(s[0]);
}
Even with this, user has to write two statement, why we can't
just have:
auto s = new float[100](0);
another version:
auto arr = new double[ 10 ];
writeln( arr[5] ); // NaN
arr.length += 10;
writeln( arr[15] ); // NaN
imo NaN is useless, weird and unusual coz integrals and
pointers are "all bits zeroes" but float and chars are "all
bits ones". WTF? its strange that bool.init is false in such
case.
.init = "all zeroes" can be faster initialize any block of
memory.
I have the same question, why float/double are init to NaN,
instead of 0? as other post-C++ language does? e.g Java, C# ...
What's the reason for this design decision?