passing duck-typed objects and retaining full type information
Adam Taylor via Digitalmars-d-learn
digitalmars-d-learn at puremagic.com
Tue Nov 11 17:50:07 PST 2014
> No, i'm specifically looking for a solution that is NOT
> inheritance based. I've been looking at solutions based on
> opDispatch or template mixins -- but so far haven't come up
> with anything.
For example in this thread:
http://forum.dlang.org/thread/mailman.410.1319536838.24802.digitalmars-d@puremagic.com?page=2
Adam Ruppe has an interesting example:
DynamicObject delegate(DynamicObject[] args) dynamicFunctions;
DynamicObject opDispatch(string name, T...)(T t) {
if(name !in dynamicFunctions) throw new
MethodNotFoundException(name);
DynamicObject[] args;
foreach(arg; t)
args ~= new DynamicObject(arg);
return dynamicFunctions[name](args);
}
More information about the Digitalmars-d-learn
mailing list