AA char[] as key
Andrew Wiley
wiley.andrew.j at gmail.com
Tue Jan 3 11:42:08 PST 2012
On Tue, Jan 3, 2012 at 1:41 PM, Andrew Wiley <wiley.andrew.j at gmail.com> wrote:
> On Tue, Jan 3, 2012 at 1:25 PM, simendsjo <simendsjo at gmail.com> wrote:
>> seems T[char[]] is rewritten as T[const(char)[]], and does not accept char[]
>> as key even if mutable data should automatically convert to const (right..?)
>>
>> Shouldn't T[char[]] be disallowed, and have to be written as
>> T[immutable(char)[]] instead of a silent rewrite?
>>
>>
>> alias long[char[]] AA;
>> // key automatically changed to const(char)[]
>> static assert(is(AA == long[const(char)[]]));
>> AA aa;
>> aa["a"] = 10;
>> // error - have to use immutable keys
>> aa["b".dup] = 11;
>
> By design, the problem is things like this:
>
> char[] key = "somekey";
Sorry, should be:
char[] key = "somekey".dup;
More information about the Digitalmars-d-learn
mailing list