如何检测函数是否使用@property注释

时间:2013-06-24 02:16:17

标签: d phobos

是否可以使用D的内置特征和/或std.traits来检测某个函数(在类/结构内或不在内)是否使用@property进行注释?我知道@property不是真的属性,但我认为__traits(getAttributes, ...)可能会这样做(没有这样的运气)。

1 个答案:

答案 0 :(得分:4)

一般来说,我认为最好只测试你想要使用的表达式编译(例如is(typeof(var.prop))),但如果由于某种原因你真的需要知道一个函数被标记为@property,然后您可以使用std.traits.functionAttributes获取该信息。像

这样的东西
enum isProperty = (functionAttributes!(MyType.prop) & FunctionAttribute.property) != 0;

应该有用。