是否可以使用D的内置特征和/或std.traits来检测某个函数(在类/结构内或不在内)是否使用@property进行注释?我知道@property不是真的属性,但我认为__traits(getAttributes, ...)
可能会这样做(没有这样的运气)。
答案 0 :(得分:4)
一般来说,我认为最好只测试你想要使用的表达式编译(例如is(typeof(var.prop))
),但如果由于某种原因你真的需要知道一个函数被标记为@property
,然后您可以使用std.traits.functionAttributes获取该信息。像
enum isProperty = (functionAttributes!(MyType.prop) & FunctionAttribute.property) != 0;
应该有用。