这是我不久前提出的一个gensym
实现:
enum gensym = q{"_gensym" ~ __traits(identifier, {})["__lambda".length .. $]};
// 同行多次工作.
pragma(msg, mixin(gensym)); pragma(msg, mixin(gensym));
利用了编译器
为它遇见的每个λ
函数生成唯一
标识.
虽然不能在代码中
使用他们,但错误消息
中可见并且可__traits(identifier)
.