Disallow arrays as pointers
bearophile
bearophileHUGS at lycos.com
Tue Nov 1 17:57:33 PDT 2011
> So I think this should compile:
>
> char[] foo(string s1, string s2) pure {
> return s1 ~ s2;
> }
> void main() {}
The situation is a bit more complex:
char[] foo(immutable string s1, immutable string s2) pure {
return s1 ~ s2;
}
void main() {
string t1 = "foo";
string t2 = "bar";
auto t3 = t1 ~ t2;
static assert(is(typeof(t3) == string));
}
So there I was asking for the druntime array concat to return something immutable that is implicitly cast-able to mutable. It's kind of the opposite of the recently introduced rule for strongly pure functions... So I don't know if this is possible.
> And regarding toStringz(), this modified version seems to work as desired:
http://d.puremagic.com/issues/show_bug.cgi?id=6878
Bye,
bearophile
More information about the Digitalmars-d
mailing list