Traits problem
Daniel Ribeiro Maciel
daniel.maciel at gmail.com
Fri Dec 4 15:20:08 PST 2009
Heya!
Ok, let me explain what I want to do:
import std.stdio: writeln;
class Foo {
float bla() { return 0.0; }
void foo() {}
}
void main() {
enum string[] members = __traits(allMembers, Foo );
foreach( member; members )
writeln( typeid(typeof(__traits(getVirtualFunctions, Foo, member) )) );
}
Is that possible?
Best regards,
Daniel
bearophile Wrote:
> Daniel Ribeiro Maciel:
>
> Try this:
>
> import std.stdio: writeln;
>
> class Foo {
> float bla() { return 0.0; }
> void foo() {}
> }
>
> void main() {
> enum string[] members = ["bla", "foo"];
> writeln( typeid(typeof(__traits(getVirtualFunctions, Foo, members[0]) )) );
> }
>
> Output: (float())
> You need enum there, unfortunately. Also note the position of [], the lack of traits import, the qualified import from std.stdio, the void return of main, and so on.
>
> Bye,
> bearophile
More information about the Digitalmars-d
mailing list