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'
在追踪测试包遗漏的错误
的原因时,很有用.