Возможно, вы ищете не в том направлении. Как отметил Алан Стоукс, предупреждение существует не просто так. У меня есть три подсказки, которые, возможно, не ответы, которые вы ожидаете, но может принести приемлемый решение:
Вместо глушителей предупреждение, просто исправить ошибку. Я не знаю вашего кода, но есть other people, у которого была аналогичная проблема, которую можно было исправить , просто объявив переменной.
Другой вопрос: почему вы хотите превратить все свои предупреждения в ошибки? Это действительно необходимо? Я согласен с тем, что обычный код всегда должен компилироваться без предупреждений. Но эти предупреждения не происходят из вашего собственного кода. Рассмотрим static code-checker, который предупреждает вас о проблемах, о которых следит ваш компилятор.
Если вы должны использования -WX
, переместить вредоносный код, в статический объект/библиотеки/модуля, так что вы будете обеспокоены о предупреждении только тогда, когда вам нужно пересобрать этот модуль. Вы можете использовать определенные параметры компиляции для этого модуля, чтобы полностью исключить предупреждения.
Существует еще одна возможность, но я не в состоянии проверить, является ли она действительно работает. Согласно Microsoft Documentation, можно установить уровень предупреждения для конкретных предупреждений. (есть аналогичные options for GCC). Во-первых, включите все предупреждения об ошибках:
/WX
Затем установите уровень предупреждения двух предупреждений обижая к нулю:
/W04510 /W04610
Полный командной строки будет выглядеть следующим образом:
cl source.cpp /WX /W04510 /W04610
Лучшим решением было бы объединить это с намеком 3 выше. Таким образом, конкретные параметры компилятора используются только для файлов, вызывающих предупреждения.
Инстанцирование класса с помощью конструктора, который не существует ошибка Это не то, что это предупреждение означает , –
Пожалуйста, покажите реальный код и фактические предупреждения, которые вы получите. –