禁用警告c4702似乎不是VS 2012年工作(disable warning c4702 seem

2019-06-28 05:33发布

我有我添加的前期其余代码测试一些代码,使其余的将永远不会在测试中达到。 既然我已经警告级别4集,这将导致在c4702:无法访问的代码警告

我尝试禁用这样的:

//do something
    return 0;

    /*-------------------------------------------------------------------------*/

#pragma warning(disable: 4702)
    //real code

但是编译器仍然呻吟。 因为我已经设置对待每一个警告作为一个错误,这将不编译...

我使用的Visual Studio 2012高级版...

任何帮助将欣然赞赏。

Answer 1:

你也许只需要受影响的功能开始之前,而不是在它里面放置编译。

从MSDN文档 :

对于在范围4700-4999,这与代码产生相关联的那些警告号,生效的警告的状态下,当编译器遇到一个函数的大括号将在该函数的其余部分的影响。 在功能使用警告杂更改有许多比4699大只需要功能结束后生效警告的状态。

因此,例如:

#pragma warning(push)
#pragma warning(disable: 4702)
bool Do() {
  return true;
  return true;  // No warning generated
#pragma warning(pop)
}

bool DoDo() {
  return true;
  return true;  // Generates C4702
}


文章来源: disable warning c4702 seems not work for VS 2012