F i L wrote:
foobar wrote:
I'd expect something like:

[ ... ]

Ya, you could always have the Array constructor pass on construction Parameters as well, and I think your examples make sense.

On a side note, you could always invoke Arrays, Dynamic Arrays (Lists), and Associative Arrays (Maps) by name (like every other object), and use the '[...]' syntax for initializing the size:

    auto a = Array(Point(int))[5].new(1, 2); // static
    auto l = List(Point(int))[5].new(1, 2); // dynamic
    auto m = Map(Point(int), string)[
                 'one',
                 'two',
                 'three',
                 'four',
                 'five'
             ].new(1, 2)

    // shorthands:
    auto a = [0, 1, 2]; // Array(int)[3]
    auto l = [][0, 1, 2]; // List(int)[3]
    auto m = ['z':0, 'o':1, 't':2];
        // Map(int, string)['z', 'o', 't']

this would have the added benefit of being consistent with std.containers types, but only the three default one would have shorthands:

    import std.containers;

    auto l = List(int)[5];     // object.d
    auto sl = SLinked(int)[5]; // std.containers.d
    auto dl = DLinked(int)[5]; // std.containers.d

IDK though, just a thought.

Reply via email to