数年前に発生したのとまったく同じ問題に遭遇しました。コンパイラをレベル 4 の警告に設定して、可能な限り多くの潜在的な問題をキャッチするという問題です。当時、私は Qt とサポート契約を結んでおり、Qt のコードでこれほど多くの警告が生成された理由を尋ねました。彼らの反応は、彼らのコードが警告なしにコンパイルされることを決して保証しないというものでした. 彼らのコードが正しく実行されるということだけです。
何度か試行した後、以下に示すように、警告を無効にするプラグマで Qt ヘッダー ファイルを囲み始めました。
#pragma warning(push,3) // drop compiler to level 3 and save current level
#include <QString>
#include <QVariant>
#include <QStack>
#include <QLabel>
#include <QtGui/QTableWidget>
#pragma warning(pop) // restore compiler warning level
このようにすることで、Qt ヘッダー ファイルのみを低い警告レベルでコンパイルします。または、警告を取り除くために必要なレベル。個々の警告がまだ表示される場合があるため、警告レベルを上げるか、個々の警告を無効にすることができます
#pragma warning(disable: 4700)
一部の Boost ライブラリ ファイルにもこの問題があります。