Visual C 中的 C4510-C4513 和 C4623-C4626 警告范围有什么区别?
事实证明(在 反愚蠢警告标题中找到,共享于 这个答案),Visual C++ 有两组警告看起来非常相似。
即 C4510-C4513 和 C4623-C4626 看起来抱怨完全相同的问题,例如 C4513 和 C4624 警告无法生成默认析构函数,因为基类析构函数是无法访问。其他六个警告也是如此 - 看起来第一个范围中的每个警告在第二个范围中都有一个非常相似的警告。
这些范围内的警告有什么区别?
Turns out (found in the anti-silly warnings header shared in this answer) that Visual C++ has two groups of warnings that look painfully similar.
Namely C4510-C4513 and C4623-C4626 look complaining about exactly the same problems, for example both C4513 and C4624 warn that a default destructor could not be generated because the base class destructor is inaccessible. The same goes for other six warnings - looks like for each one in the first range there's a very similar warning in the second range.
What's the difference between the warnings in these ranges?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
我没有看到 4510 和 4623 之间有任何区别。4513
是级别 4,而 4624 是级别 1。4511
是级别 3,而 4625 是级别 4。
仅当基类赋值运算符不可访问时才会生成 4626,而如果该类具有 const 成员,防止生成默认赋值运算符。
I don't see any difference between 4510 and 4623.
4513 is level 4 while 4624 is level 1.
4511 is level 3 while 4625 is level 4.
4626 is only generated if the base class assignment operator is inaccessible while 4512 will be generated if the class has const members preventing the default assignment operator from being generated.