考虑一个带委托的属性(谓词函数为std.algorithm.filter)
struct Section( alias pred ){}
这用于注释这样的字段:
struct A {
@Section!( ( words ) => words[0] == '@' )
string b;
int c;
}
字段b由委托进行注释,如果字符串以@开始时调用
,则返回true那么如何检索所有由@Section注释的字段?
是否可以在运行时调用带有字符串作为参数的委托,并知道它是否为真?
感谢
答案 0 :(得分:2)
那么如何检索所有由@Section注释的字段?
首先,使用allMembers
或.tupleof
枚举结构的所有字段。
然后,使用getAttributes
枚举附加到每个字段的所有属性。检查字段中是否存在@Section
。
是否可以在运行时调用带有字符串作为参数的委托,并知道它是否为真?
您应该在Section
结构中保存别名。例如:
struct Section(alias pred)
{
alias fun = pred;
}
然后,只需引用getAttributes
结果元组成员。