Why doesn't this work in D2?
BCS
none at anon.com
Sun Jun 27 17:28:42 PDT 2010
Hello Jacob,
> That's annoying, specially since "char" is a value type. I would
> preferably have a solution for both D1 and D2. Can I use a template to
> cast/alias away the immutable part?
One solution would be to have templates strip off const/immutable from the
top level of args.
void F1(T)(T t) { pragam(msg,typeof(t).stringof); }
string s1;
immutable(char[]) s2
char[] s3
F1(s1); // immutable(char)[] // all as normal
F1(s2); // immutable(char)[] // making a mutable copy of a immutable value
is OK
F1(s3); // char[] // all as normal
void F2(T)(immutable T t) { pragam(msg,typeof(t).stringof); }
F2(s1); // immutable(char[]) // making an immutable copy of a mutable reference
to immutable data is ok
F2(s2); // immutable(char[]) // all as normal
F2(s3); // error, invalid conversion
This solution would match the proposal that popped up a while ago to allow
value assignment from const/immutable to mutable.
--
... <IXOYE><
More information about the Digitalmars-d-learn
mailing list