d编译时生成唯一标识

阅读 135

2022-06-20

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

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

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

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


精彩评论(0)

0 0 举报