digitalmars.D - interface.tupleof proposal
- BCS (33/33) Apr 03 2007 I would really like to be able to do something like this
- dennis luehring (4/45) Apr 05 2007 that is something that im waiting for - but it seems that no one is
- Dan (3/6) Apr 05 2007 For now, I'd say don't use classes. Use AA's, or arrays of unions?
I would really like to be able to do something like this |class Foo(T) : T |{ | static assert(T : interface) | foreach(method; T.tupleof) | { | method.return method(method.args arg) | { | // implement based on type and args of method | } | } |} This would allow for some cool things like a fully template version of my interface-over-network code-generator. Another things would be a dynamic interface inheritance |class DnyInterface(T, V...) : T |{ | private T t; | this(T t_){t = t_;} | | static assert(T : interface) | foreach(method; T.tupleof) | { | method.return method(method.args arg) | { | return t.method(arg) | } | } |} class Use : DnyInterface!(I) {} What exactly this would be used for I don't know, but one thought is that an interface returned from a dll/so could now be "inherited from" by a class in the loading program.
Apr 03 2007
BCS schrieb:I would really like to be able to do something like this |class Foo(T) : T |{ | static assert(T : interface) | foreach(method; T.tupleof) | { | method.return method(method.args arg) | { | // implement based on type and args of method | } | } |} This would allow for some cool things like a fully template version of my interface-over-network code-generator. Another things would be a dynamic interface inheritance |class DnyInterface(T, V...) : T |{ | private T t; | this(T t_){t = t_;} | | static assert(T : interface) | foreach(method; T.tupleof) | { | method.return method(method.args arg) | { | return t.method(arg) | } | } |} class Use : DnyInterface!(I) {} What exactly this would be used for I don't know, but one thought is that an interface returned from a dll/so could now be "inherited from" by a class in the loading program.that is something that im waiting for - but it seems that no one is interessed in such an compile-time reflectin stuff.. i would be also nice to walk through the oop hierachie (for typed factories or something)
Apr 05 2007
dennis luehring Wrote:that is something that im waiting for - but it seems that no one is interessed in such an compile-time reflectin stuff.. i would be also nice to walk through the oop hierachie (for typed factories or something)For now, I'd say don't use classes. Use AA's, or arrays of unions? Walter and friends *are* interested in compile-time reflection. Look up their talks about reflecting the AST.
Apr 05 2007