But I did implement them poorly, this is better:

import std.traits;

template KeyType(AA)
    if (isAssociativeArray!AA)
{
    static if (is(AA V : V[K], K))
    {
        alias K KeyType;
    }
}

template ValueType(AA)
    if (isAssociativeArray!AA)
{
    static if (is(AA V : V[U], U))
    {
        alias V ValueType;
    }
}

Reply via email to