digitalmars.D.learn - question about multiple alias this
- steven kladitis (19/19) Sep 24 2015 class A{
- Jonathan M Davis via Digitalmars-d-learn (11/30) Sep 24 2015 The only implicit conversion that's built into user-defined types is cas...
class A{ int i; bool b; alias i this; alias b this; } void main() { auto a = new A; int i = a; bool b = a; } --- this will not compile in dmd 2068.1. --- ok, but what technique do you use to emulate this type of behavior?? --- would interfaces be the answer, if so could I see an example. and would you use the --- same for structs ?????? --- thanks, Steven
Sep 24 2015
On Thursday, September 24, 2015 13:04:20 steven kladitis via Digitalmars-d-learn wrote:class A{ int i; bool b; alias i this; alias b this; } void main() { auto a = new A; int i = a; bool b = a; } --- this will not compile in dmd 2068.1. --- ok, but what technique do you use to emulate this type of behavior?? --- would interfaces be the answer, if so could I see an example. and would you use the --- same for structs ?????? --- thanks, StevenThe only implicit conversion that's built into user-defined types is casting from a derived class to a base class or interface that it implements. All other implicit conversions have to be implemented via alias this, and currently, you can only have one alias this. So, what you're trying to do really doesn't work right now. You could declare an opCast for each type you want to be able to convert to and do explicit casts, but alias this is the only way to add implicit conversions. We'll probably have support for multiple alias thises at some point, but I don't know when. - Jonathan M Davis
Sep 24 2015