[Issue 8280] std.array.uninitializedArrayExtend, std.array.initializedArray
via Digitalmars-d-bugs
digitalmars-d-bugs at puremagic.com
Fri Jun 13 13:10:18 PDT 2014
https://issues.dlang.org/show_bug.cgi?id=8280
bearophile_hugs at eml.cc changed:
What |Removed |Added
----------------------------------------------------------------------------
Summary|std.array.uninitializedArra |std.array.uninitializedArra
|yExtend |yExtend,
| |std.array.initializedArray
--- Comment #1 from bearophile_hugs at eml.cc ---
I also suggest to add a "std.array.initializedArray" function similar to
std.array.uninitializedArray, that accepts another extra argument that is the
initialization value or a lambda to fill the array:
This allocated an array of 100 spaces:
auto data = initializedArray!(char[])(100, ' ');
It is equivalent to:
auto data = uninitializedArray!(char[])(100);
data[] = ' ';
Another example usage (note the result is immutable):
immutable data = initializedArray!(int[])(50, i => i);
That is equivalent to (but there is no data_ temporary variable):
auto data_ = uninitializedArray!(int[])(50);
foreach (immutable i; 0 .. 50)
data_[i] = i;
immutable data = data_.assumeUnique;
Another example usage:
immutable mat = initializedArray!(int[][])(20, 20, (i, j) => i * j);
That is equivalent to (but there is no mat_ temporary variable):
auto mat_ = uninitializedArray!(int[][])(20, 20);
foreach (immutable i; 0 .. 20)
foreach (immutable j; 0 .. 20)
mat_[i][j] = i * j;
immutable mat = mat_.assumeUnique;
--
More information about the Digitalmars-d-bugs
mailing list