Advertisement
beng

Passing a module to __traits(allMembers)

Feb 26th, 2013
100
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
D 1.23 KB | None | 0 0
  1. % cat allclasses1.d
  2. import std.array;
  3. import std.stdio;
  4. import std.traits;
  5.  
  6. string GetMembers(T)() {
  7.   auto members = [__traits(allMembers, T)];
  8.   return join(result, ", ");
  9. }
  10.  
  11. void main() {
  12.   stdout.writefln("Got members: %s", GetMembers!std.stdio);
  13. }
  14.  
  15. % rdmd allclasses1.d
  16. allclasses1.d(11): Error: template instance GetMembers!(std) GetMembers!(std) does not match template declaration GetMembers(T)()
  17. Failed: 'dmd' '-v' '-o-' 'allclasses1.d' '-I.'
  18.  
  19. % cat allclasses2.d
  20. import std.array;
  21. import std.stdio;
  22. import std.traits;
  23.  
  24. void main() {
  25.   auto members = [__traits(allMembers, std.stdio)];
  26.   auto joined = join(members, ", ");
  27.   stdout.writefln("Got members: %s", members);
  28. }
  29.  
  30. % rdmd allclasses2.d
  31. Got members: ["object", "core", "std", "fileno", "GENERIC_IO", "flockfile", "funlockfile", "fputc_unlocked", "fputwc_unlocked", "fgetc_unlocked", "fgetwc_unlocked", "FPUTC", "FPUTWC", "FGETC", "FGETWC", "FLOCK", "FUNLOCK", "ByRecord", "byRecord", "File", "LockingTextReader", "writefx", "isFileHandle", "isStreamingDevice", "write", "writeln", "writef", "writefln", "readf", "readln", "fopen", "popen", "binaryWrite", "lines", "chunks", "StdioException", "std_stdio_static_this", "stdin", "stdout", "stderr", "readlnImpl"]
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement