Give this function I'd like to run it at compile time:

        import std.concurrency : Generator, yield;
        Generator!string getNonIntegralMembers() {
                return new Generator!string({
                        enum allMembers = __traits(derivedMembers, C);
                        foreach(enum string member; allMembers) {
bool isInteg = __traits(isIntegral, >__traits(getMember, C, member));
                                if(!isInteg) {
                                        yield(member);
                                }
                        }
                });
        }

but when I do:

enum string[] members = getNonIntegralMembers();
writeln(members);

I get the following erros:

C:\D\dmd2\windows\bin\..\..\src\druntime\import\core\thread.d(4059): Error: 
static variable PAGESIZE cannot be read at compile time
C:\D\dmd2\windows\bin\..\..\src\phobos\std\concurrency.d(1548): called from here: super.this(dg, PAGESIZE * 4u, PAGESIZE)
app.d(96):        called from here: getNonIntegralMembers()

Reply via email to