Implicit string lit conversion to wstring/dstring
Andrei Alexandrescu
SeeWebsiteForEmail at erdani.org
Wed Mar 14 12:07:04 PDT 2012
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
More information about the Digitalmars-d
mailing list