Overloading cast

Hxal hxal at freenode.irc
Tue Nov 11 04:21:48 PST 2008


Tim M Wrote:
> http://www.digitalmars.com/d/2.0/operator-overloading.html#Unary
> 
> "The member function e.opCast() is called, and the return value of  
> opCast() is implicitly converted to type. Since functions cannot be  
> overloaded based on return value, there can be only one opCast per struct  
> or class."
> 
> I've come across a situation where opcast to different types would be very  
> useful. Why can't this be overloaded to cast to different types as a  
> special situation for overloading on return types. Very useful IMHO.

That's actually very easy to sidestep, just instead of using opCast - use a method
like T Foo.to!(T) or a library solution like tango.util.Convert.

I do hope though that this restriction will be lifted when opImplicitCast comes
along, by choosing a signature that takes the target type as parameter.




More information about the Digitalmars-d mailing list