Quick actions

cmd+k|ctrl+k

Navigation

Languages

Untitled

Snippet info

Language

D

Visibility

unlisted

Author

legacy-anonymous

Created

2020-08-12T19:05:53Z

Updated

2020-08-12T19:05:53Z

import std.stdio;
import std.meta;
import std.traits;

struct Foo {
    int a;
    void foo1(int a) {}
    void foo2(string a, int b) {}
}

class Bar {
    int b;
    void bar1(int a) {}
    void bar2(Foo a, int b) {}
}


void print_functions(T)() {
    writeln(T.stringof);
    foreach(field; __traits(allMembers, T)) {
        alias member = Alias!(__traits(getMember, T, field));
        static if(isFunction!(member)) {
            writefln("  %s: %s", field, typeof(member).stringof);
        }
    }
}

void main() {
    print_functions!(Foo);
    print_functions!(Bar);
}
INFO