On 3/14/12 2:01 PM, H. S. Teoh wrote:
However, this change broke this code:
AssociativeArray!(wstring,int) aa;
aa["abc"] = 123; // error: compiler deduces K as string,
// so isCompatWithKey!K fails: string
// can't implicitly convert to wstring
Whereas before, when opIndexAssign looked like this:
void opIndexAssign(in Value v, in Key key)
{
...
}
everything worked, because the compiler deduces the type of "abc" as
wstring since Key==wstring.
Aha! This is one of those cases in which built-in magic smells of putrid
beef soup.
I think it's possible to still make this work by beefing up the template
constraints such that the working signature is selected for strings.
Andrei