0
点赞
收藏
分享

微信扫一扫

d编译时生成唯一标识

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

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

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

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


举报

相关推荐

0 条评论