Pulling some builtin logic out

Kaja kaja.fumei at gmail.com
Mon Mar 31 10:03:07 PDT 2008


Walter wrote in the docs:
>Associative Arrays
>
>The main benefit for this is, once again, syntactic sugar. An
>associative array keying off of a type T and storing an int value is
>naturally written as: 
>
> int[T] foo;
> rather than: 
>
>import std.associativeArray;
>...
>std.associativeArray.AA!(T, int) foo;
>Builtin associative arrays also offer the possibility of having associative
>array literals, which are an often requested additional feature. 

And he's not big on standrdizing a library, but what if we could have the syntactic sugar and flexibility?  What if int[T] mapped to an interface for associative arrays rather than a class or builtin type?  Standardize the interface and not the implementation.

Then someone could still do something like this:

class MyAA(K, V) : std.associativeArray(K, V)
{
  // insert my implementation
}

// compiler choice.  probably builtin implementation
int[string] foo;

// programmer choice.
int[string] foo2 = new MyAA!(string, int)();

Thoughts?  Comments?




More information about the Digitalmars-d mailing list