【问题标题】:No warning on deleting a forward declared pointer (Visual Studio)删除前向声明的指针时没有警告(Visual Studio)
【发布时间】:2015-06-09 12:12:08
【问题描述】:

删除前向声明的指针会导致未定义的行为。

例子:

但是,我的 Visual Studio (VS2012) 编译器没有警告我。

  • 这是一个不固定的VS2012 compiler bug吗?
  • 我是否禁用了 (or never enable) 相应的警告?
  • 这是否特定于某些项目设置?
  • Visual Leak Detector 提示了我该问题,但是否有某种方法(编译指示、代码、宏...)可以在编译时检测到这个问题?

【问题讨论】:

  • 相应的警告是C4150。它是警告级别 2,默认情况下应该处于活动状态。
  • @Pixelchemist:我的警告级别太低了。为什么不添加您的评论作为答案,以便我可以接受...
  • 如果您想评论答案或添加一些内容但不编辑,请在答案中添加评论。
  • @Pixelchemist 你说得对,我很抱歉。

标签: c++ visual-studio-2012 memory-leaks forward-declaration


【解决方案1】:

相应的警告是C4150

默认情况下它应该处于活动状态,并且被归类为警告级别 2(也应该处于活动状态,因为默认警告级别是 W3afaik)。

注意:不要降低警告级别,而是在特定情况下尝试编译警告。

【讨论】:

  • 可以通过编译器标志 /wnxxxx 为单个警告赋予新的警告级别,其中 n 是新级别,xxxx 是警告代码。见this answer
猜你喜欢
  • 2019-04-09
  • 1970-01-01
  • 1970-01-01
  • 2017-03-04
  • 1970-01-01
  • 1970-01-01
  • 2022-09-30
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多