On Monday, 12 March 2018 at 21:00:07 UTC, Xavier Bigand wrote:
Hi,

I have a CTFE function that I want to make more generic by given it a module as parameter.


My actual code looks like :

mixin(implementFunctionsOf());


string implementFunctionsOf()
{
    import std.traits;

    string      res;

    foreach(name; __traits(allMembers, myHardCodedModule))
    {
    }
    return res;
}


I tried many things but I can't figure out the type of the parameter I should use for the function implementFunctionsOf.

you can use a alias or a string:

void fun(alias mod, string mod2)()
{
    foreach(m; __traits(allMembers, mod))
        pragma(msg, m);

    foreach(m; __traits(allMembers, mixin(mod2)))
        pragma(msg, m);
}

void main()
{
    import std.stdio;
    fun!(std.stdio, "std.stdio");
}

Reply via email to