7
是否使用#pragma警告推送/弹出来临时更改警告级别的正确方法?
有时很难编写完全不会发出警告的C ++代码。但是,启用警告是一个好主意。因此,通常有必要禁用某些特定构造周围的警告,并在所有其他代码段中启用警告。 到目前为止,我已经看到了两种方法。 第一个是使用#pragma warning( push )和#pragma warning( pop ): #pragma warning( push ) #pragma warning( disable: ThatWarning ) //code with ThatWarning here #pragma warning( pop ) 第二种是使用#pragma warning( default ): #pragma warning( disable: ThatWarning ) //code with ThatWarning here #pragma warning( default: ThatWarning ) 我在第二个变体中看到的问题是它丢弃了原始警告级别-警告可能在此之前已关闭,或者其警告级别可能已更改。使用default将丢弃这些更改。 第一种方法看起来很干净。有什么问题吗?有没有更好的方法可以达到相同目的?