how to skip sub functions in __traits(allMembers)

BBaz via Digitalmars-d-learn digitalmars-d-learn at puremagic.com
Sat Jun 27 09:28:40 PDT 2015


I try to build a symbol table:

---
module aveb;

import std.stdio;
import std.algorithm.searching;
import std.ascii;

void* [string] sig;

void ana(alias mod)()
{
     import std.traits;
     foreach(memb;__traits(allMembers,mod))
     static if 
(canFind(["package","public"],__traits(getProtection,memb)))
         static if (isSomeFunction! (__traits(getMember,mod,memb) 
))
             foreach(ov;__traits(getOverloads,mod,memb))
                 sig[memb] = &__traits(getMember,mod,memb);
}

void main(string[] args)
{
     //ana!(std.ascii); //ok
     ana!(std.traits);
     writeln(sig);
}
---

>Error: function std.traits.demangleParameterStorageClass is not 
>accessible from module aveb
>Error: function std.traits.demangleParameterStorageClass is not 
>accessible from module aveb
>etc


problem is that the sub functions are not accessible. i'd like to 
skip them.






More information about the Digitalmars-d-learn mailing list