Visual C 中的 C4510-C4513 和 C4623-C4626 警告范围有什么区别?

发布于 2024-12-15 11:03:57 字数 643 浏览 2 评论 0原文

事实证明(在 反愚蠢警告标题中找到,共享于 这个答案),Visual C++ 有两组警告看起来非常相似。

即 C4510-C4513 和 C4623-C4626 看起来抱怨完全相同的问题,例如 C4513C4624 警告无法生成默认析构函数,因为基类析构函数是无法访问。其他六个警告也是如此 - 看起来第一个范围中的每个警告在第二个范围中都有一个非常相似的警告。

这些范围内的警告有什么区别?

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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

烙印 2024-12-22 11:03:57

我没有看到 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.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文