On Wednesday, 24 July 2013 at 10:01:14 UTC, bearophile wrote:
dennis luehring:
and how would it look to preserve the const if auto would
auto-rip it of?
You could write:
immutable j = n;
For every default behavour you need a way to implement the
other nicely :-)
Currently for the problem of the OP you can use this:
Unqual!(typeof(n)) j = n;
Bye,
bearophile
Definitly. Auto means "same type". I think it could be OK if it
followed IFTI rules? After all, in concept, it's kind of the same
mechanism.
I wouldn't go any further than that though.
//----
void foo(T)(T t)
{
pragma(msg, T.stringof);
}
void main(string[] args)
{
immutable int[] i = [1, 2, 3];
foo(i);
auto j = i;
pragma(msg, typeof(j).stringof);
}
//----
immutable(int)[]
immutable(int[])
//----
Problem: I don't really see a good usecase for making auto have
special IFTI behavior. Keeping it to "same type, 100% of the
time" seems like the best.