|
|
1
1
我以前做过一些测试,检查以前的构建并扫描头文件以发现这种类型的版本破坏行为。您可以使用diff生成任何更改的报告,对公共模式进行grep,并确定删除固定索引项、更改索引项和删除或插入浮动索引项之间的区别。
避免这种情况的一个明显方法是不删除死索引,而是重命名它们,即。
另一个技巧可能是接受问题将发生的事实,但如果这只是客户的问题,在每个软件版本/修订版上,更新范围的基数,发布软件并再次更新,因此开发版本永远与版本不兼容,例如
然后,在运行时,任何不在当前范围内的图标都很容易被拒绝,或者您可能会在版本之间提供特殊的查找,可能是通过拖网版本控制修订生成的。请注意,您只能通过这种方式提供向后兼容性,而不能提供向前兼容性。这将取决于较新的代码,以抢先的方式将其图标编号反译为发送到较旧的模块,这可能需要付出更多的努力。 |
|
|
2
0
我突然想到了这个想法:如果我们在枚举大小的末尾保留一个文本,那么如果我们没有验证每个枚举文本,我们的单元测试可以使用它来断言:
然后在测试中:
那么,我们唯一的问题就是在发布之前确保测试通过,无论如何我们都应该这样做。 |
|
|
3
0
由于问题已标记为C++11,因此使用
作用域枚举
。
由于客户端和服务器中都包含相同的枚举文件,因此删除任何条目都会导致在使用缺少条目的地方编译失败。
所有需要改变的是
现在你不能明目张胆地通过
所以主叫方
此外,允许从作用域枚举器中提取数值。
|
|
AstralHex · 矩阵乘法代码工作不正常 9 月前 |
|
|
Fishie · 作为类成员的智能指针是否仍然自动释放?[关闭] 9 月前 |
|
|
Die4Toast · 递归调用成员箭头运算符-> 9 月前 |
|
|
Anka Hanım · 关于结构和动态数组地址的问题 9 月前 |