alias this versus opDot
Jonathan M Davis
jmdavisProg at gmx.com
Sun Nov 11 14:19:26 PST 2012
On Sunday, November 11, 2012 22:30:06 Namespace wrote:
> I think that the problem is the immutable modifier. Without
> immutable(T) and immutable as method modifier it works fine too.
> My question is: why?
It's because _val isn't immutable. It's an A, and you can't implicitly convert
A to immutable A. So, neither opDot or get is useable with Unique!A. It would
have to be immutable(Unique!(immutable A)) for it to work (since Unique must
be immutable for them to be callable, and _val must be immutable A for it to
be able to be returned from them.
The reason that the get is blowing up is that you're using it with alias this,
which then makes it so that you're trying to use get, which then fails,
because the this reference isn't immutable, whereas you're not trying to use
opDot, so the compiler doesn't complain.
- Jonathan M Davis
More information about the Digitalmars-d-learn
mailing list