Possible @property compromise

Zach the Mystic reachBUTMINUSTHISzach at gOOGLYmail.com
Thu Jan 31 19:23:03 PST 2013


On Friday, 1 February 2013 at 03:08:12 UTC, Zach the Mystic wrote:
> On Friday, 1 February 2013 at 01:53:05 UTC, TommiT wrote:
>> On Friday, 1 February 2013 at 00:59:47 UTC, Zach the Mystic 
>> wrote:
>>> writeln(foo.n); // uses alias this to call 
>>> __mightAsWellBeOpGet
>>
>> No it won't. It will print "n()".
>>
>> And that exactly (passing to a templated parameter) is the 
>> insurmountable problem in using a variable to represent a 
>> property.
>
> to!string(foo.n)... hmmm...

I think this is taken care of actually, with opCast(string). The 
docs for std.conv.to with opCast may contain a typo:

"toImpl(T, S)(S value);
When source type supports member template function opCast, is is 
used."

I think it might mean "it is used" since I don't know why it 
would use "is" instead of the opCast. If that's true, just 
override opCast(string), no?

Still, it would be great to be able to "prefer" a particular 
alias this when passed to templates.


More information about the Digitalmars-d mailing list