std.allocator ready for some abuse
Brad Anderson
eco at gnuk.net
Sat Oct 26 11:42:41 PDT 2013
On Saturday, 26 October 2013 at 16:10:46 UTC, Dmitry Olshansky
wrote:
> 26-Oct-2013 20:01, Joseph Rushton Wakeling пишет:
>> On 25/10/13 20:41, Namespace wrote:
>>> Did you mean to get rid of built-in arrays / kill int[] and
>>> replace it
>>> with
>>> Array!T?
>>
>> Array!T is problematic as things stand -- e.g. you can't
>> foreach over
>> one.
>
> Sure you can. Try it and rejoice:
>
> void main()
> {
> import std.container, std.stdio;
> Array!int a = make!(Array!int)(1,2,3,4);
> //the rule is: if a can be sliced then slice it and use
> that slice
> foreach(v; a)
> {
> writeln(v);
> }
> }
>
The fact that foreach with a ref item or foreach with an index
doesn't work makes using them a lot more of a hassle than
built-in arrays though.
void main()
{
import std.container, std.stdio;
Array!int a = make!(Array!int)(1,2,3,4);
foreach(ref v; a)
{
v *= v; // no effect on a
}
writeln(a[]); // [1, 2, 3, 4]
foreach(v, i; a) // Error: cannot infer argument types
{
a[i] *= v;
}
}
More information about the Digitalmars-d
mailing list