Я столкнулся с той же самой проблемой, с которой вы столкнулись пару лет назад, - установкой компилятором предупреждений 4-го уровня, чтобы поймать как можно больше потенциальных проблем. В то время у меня был контракт на поддержку с 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 также имеют эту проблему.