digitalmars.D - std.traits: ParameterIdentifierTuple on 'interface' not working ?
- ted (31/31) Aug 20 2015 Is this behaviour expected ?
Is this behaviour expected ? (dmd2.068, linux 64bit) dmd -oftest test.d (string, uint, bool) tuple("a", "b", "c") (string, uint, bool) tuple("", "", "") (i.e. ParameterIdentifierTuple does not appear to work for interfaces? - what am I doing incorrectly?) test.d: import std.traits; interface IFoo { ulong foo_me(string a, uint b, bool c); } class myFoo:IFoo{ ulong foo_me(string a, uint b, bool c){ return 42; } } void main() { auto tmp_foo = new myFoo; alias ParameterTypeTuple!(tmp_foo.foo_me) tmpfooTypes; pragma(msg,tmpfooTypes); alias ParameterIdentifierTuple!(tmp_foo.foo_me) tmpfooNames; pragma(msg,tmpfooNames); foreach ( method; __traits(allMembers, IFoo)) { alias MemberFunctionsTuple!(IFoo, method) funcs; alias typeof(funcs[0]) func; alias ReturnType!func return_type; alias ParameterTypeTuple!func ParameterTypes; alias ParameterIdentifierTuple!func ParameterNames; pragma(msg,ParameterTypes); pragma(msg,ParameterNames); } }
Aug 20 2015