2311d定义符号实现

原文
现在,我一直在单独实现类,我需要一个挂名符号.最好是只有实现,而没有符号,如,我想可完成:

void pragma(mangle, "test")(int a){
    writeln(a);
}

有没有可能完成?

可用以下串插件来生成标识:

//生成不会在`域内`重复的新标识的`插件`
enum gensym(string prefix = "_gensym") =
    `"` ~ prefix ~ `" ~ __traits(identifier, {})["__lambda".length .. $]`;

但是因为D目前不支持仅插件函数名,因此必须在mixin放置整个函数定义:

mixin(q{void pragma(mangle, "test") }, mixin(gensym), q{(int a) {
    writeln(a);
}});

你可能感兴趣的:(dlang,d,d)