digitalmars.D - Proposal for alias extension
- Mike Swieton (33/33) May 18 2004 It occurs to me that it would be extremely powerful to be able to do som...
- davepermen (3/36) May 18 2004 isn't that what mixins are made for now?
It occurs to me that it would be extremely powerful to be able to do something like: alias SomeClass.* *; and pull in all the methods of that class into the current scope. Uses for this: Proxy classes class Proxy(T) { ... alias T.* *; } More powerful mixins: template Foo(T) { alias T.* *; } class Mixed { SomeClass X; mixin Foo!(X); this() { X = new SomeClass; } } Of course, it would be even simpler and more powerful if mixins had constructors... But that rant is already somewhere ;) I know this approaches the "accidental inclusion of a compile-time functional language", but this would be incredibly powerful. One thought that comes to mind: this probably should not pull in operator overloads and such, only regular methods. Thoughts? Mike Swieton __ It's kind of fun to do the impossible. - Walt Disney
May 18 2004
isn't that what mixins are made for now? (http://www.digitalmars.com/d/mixin.html) In article <pan.2004.05.18.14.59.46.445402 swieton.net>, Mike Swieton says...It occurs to me that it would be extremely powerful to be able to do something like: alias SomeClass.* *; and pull in all the methods of that class into the current scope. Uses for this: Proxy classes class Proxy(T) { ... alias T.* *; } More powerful mixins: template Foo(T) { alias T.* *; } class Mixed { SomeClass X; mixin Foo!(X); this() { X = new SomeClass; } } Of course, it would be even simpler and more powerful if mixins had constructors... But that rant is already somewhere ;) I know this approaches the "accidental inclusion of a compile-time functional language", but this would be incredibly powerful. One thought that comes to mind: this probably should not pull in operator overloads and such, only regular methods. Thoughts? Mike Swieton __ It's kind of fun to do the impossible. - Walt Disney
May 18 2004