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);
    }
}

So, forgetting syntax preferences, there needs to be some work on
containers before they can "just work" like the builtins.

Depends on what's required for you to consider it "just works".
But in general they can't be complete replica of built-ins for many reasons, built-ins being designed with GC in mind is one. Other problems include having no user-land analog of implicit tail-const of arrays.

If it's possible, I'd rather see the converse -- that code that assumes
the GC will "just work" with other allocation strategies, so one can use
the builtins without worrying.

Only if you are switching to from one GC kind to another. There is no way out of automatic memory management.

But am I being naively hopeful in
seeking that? :-)

Yes.

--
Dmitry Olshansky

Reply via email to