有时很难编写完全不会发出警告的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
将丢弃这些更改。
第一种方法看起来很干净。有什么问题吗?有没有更好的方法可以达到相同目的?