如何在C++宏中禁用警告

Jor*_*räs 3 c++ preprocessor compiler-warnings visual-c++

在Visual C++中,您可以使用pragma暂时禁用警告:

#pragma warning(suppress: 4307)
Run Code Online (Sandbox Code Playgroud)

如何在宏中禁用警告,例如,当我发出"整数常量溢出"警告时,如下所示:

#define TIMES_A_MILLION(x) x * 1000000
int value = TIMES_A_MILLION(4711);
Run Code Online (Sandbox Code Playgroud)

我不想在每个使用宏的地方重复警告,但是希望抑制成为宏的一部分.

显然不可能这样做:

#define TIMES_A_MILLION(x) \
#pragma warning(suppress: 4307) \
  x * 1000000
Run Code Online (Sandbox Code Playgroud)

dar*_*une 6

在您的情况下,您必须使用扩展名__pragma

__pragma
Run Code Online (Sandbox Code Playgroud)

代替

#pragma
Run Code Online (Sandbox Code Playgroud)