d用户删除属性
原文
是否有文档描述移除@属性(@property)不会导致错误,但会导致代码行为的改变?
正在考虑全面删除3000多个@属性.由此产生的编译错误我可修复(除非在推测实例化中,否则可能更难追踪),但我特别担心的是不会导致编译警告/错误的行为变化.
多谢了
因为@属性只是有时改变了typeof的结果,行为变化可能如下:
static if (typeof(foo.bar) == T) {
// foo有"T bar"属性
} else {
// 没有
}
目前,如果foo有一个@属性 T bar();,则此代码选择第一个分支.如果移除@属性,则进入第二个.
没有文档.
有无@属性的唯一区别是,如果取属性地址,如果无@属性,则取函数地址,如果有@属性,则取返回值的地址.
这会影响如下推导:
auto x = &s.foo;
会导致类型不匹配,但不能保证.
最好是一次删除一些@property,将它们签入git,然后运行测试包检查是否有错误,使'git bisect'在追踪测试包遗漏的错误的原因时,很有用.
浙公网安备 33010602011771号