d编译时生成唯一标识

原文
这是我不久前提出的一个gensym实现:

enum gensym = q{"_gensym" ~ __traits(identifier, {})["__lambda".length .. $]};

// 同行多次工作.
pragma(msg, mixin(gensym)); pragma(msg, mixin(gensym));

利用了编译器为它遇见的每个λ函数生成唯一标识.
虽然不能在代码中使用他们,但错误消息中可见并且可__traits(identifier).

posted @ 2022-06-13 09:57  zjh6  阅读(16)  评论(0)    收藏  举报  来源