警告レベルを最大にしたいのに #include するヘッダで警告に遭遇してしまう場合に、そこだけ警告を抑制する方法です。また、ヘッダが勝手に警告を抑制している場合にも使えます。
// 警告設定をスタックに積む #pragma warning(push) // uncorporatable_header.h で次の警告を抑制する #pragma warning(disable: 4000) #pragma warning(disable: 4001) // このヘッダで 4000 と 4001 の警告が抑制される #include "uncorporatable_header.h" // 警告設定を元に戻す #pragma warning(pop)
#pragma pop と #pragma push は、内部でプラグマを変更しているヘッダを読み込む際に、後のコンパイルに影響を与えないようにする目的にも使えます。かなり便利です。
Contributions