Выключенные по умолчанию предупреждения компилятора
Компилятор включает в себя предупреждения, отключенные по умолчанию, поскольку большинство пользователей не хотят видеть их. Однако такие предупреждения можно включить с помощью одного из следующих параметров.
#pragma warning(default : warning_number )
Указанное предупреждение (warning_number) включается на соответствующем уровне по умолчанию. Документация по предупреждениям содержит уровень предупреждения по умолчанию.#pragma warning( warning_level : warning_number )
Указанное предупреждение (warning_number) включается на соответствующем уровне (warning_level)./Wall
/Wall включает все предупреждения, в том числе предупреждения, отключенные по умолчанию.
Следующие предупреждения по умолчанию отключены.
C4061 (уровень 4) |
перечислитель "identifier" в операторе switch с перечислением "enumeration" не обрабатывается явно меткой выбора |
C4062 (уровень 3) |
перечислитель "identifier" в операторе switch для перечисления "enumeration" не обрабатывается |
C4191 (уровень 3) |
"operator/operation": небезопасное преобразование из "type of expression" в "type required" |
C4242 (уровень 4) |
"identifier": преобразование из "type1" в "type2", возможна потеря данных |
C4254 (уровень 4) |
"operator": преобразование из "type1" в "type2"; возможна потеря данных |
C4255 (уровень 4) |
"function": не представлен прототип функции: преобразование "()" в "(void)" |
C4263 (уровень 4) |
"function": функция-член не переопределяет ни одной виртуальной функции-члена базового класса |
C4264 (уровень 1) |
"virtual_function": не существует доступного переопределения для виртуальной функции-члена из базового класса "class"; функция скрыта |
C4265 (уровень 3) |
"class": класс имеет виртуальные функции, но деструктор не является виртуальным |
C4266 (уровень 4) |
"function": нет доступного переопределения для виртуальной функции-члена из базового типа "type"; функция скрыта |
C4287 (уровень 3) |
"operator": несовпадение отрицательной константы и константы без знака |
C4289 (уровень 4) |
использовано нестандартное расширение : "переменная" : переменная управления циклом, объявленная в цикле for, используется вне области видимости этого цикла |
C4296 (уровень 4) |
"operator": выражение всегда имеет значение false |
C4302 (уровень 2) |
"conversion": усечение от "type1" к "type2" |
C4311 (уровень 1) |
"переменная" : усечение указателя из типа "тип" в "тип" |
C4312 (уровень 1) |
"операция": преобразование из "тип 1" в "тип 2" большего размера |
C4339 (уровень 4) |
"тип": обнаружено использование неопределенного типа в метаданных CLR; применение этого типа может вызвать исключение при выполнении |
C4342 (уровень 1) |
изменение поведения: вызвана "функция", но в предыдущих версиях был вызван оператор-член |
C4350 (уровень 1) |
изменение поведения: "член 1" был вызван вместо "член 2" |
'this': используется в основном списке инициализации членов |
|
C4365 (уровень 4) |
"action": преобразование "type_1" в "type_2", несоответствие типов со знаком и без |
C4370 (уровень 3) |
размещение класса изменилось по сравнению с предыдущей версией компилятора из-за улучшенной упаковки |
C4371 (уровень 3) |
размещение класса могло измениться по сравнению с предыдущей версией компилятора из-за улучшенной упаковки члена "member" |
C4388 (уровень 4) |
несоответствие типов со знаком и без знака |
C4412 (уровень 2) |
"function": подпись функции содержит тип "type"; объекты C++ небезопасно передавать между структурами чистого и смешанного или машинного кода |
C4431 (уровень 4) |
отсутствует спецификатор типа — предполагается int. Примечание. C++ не поддерживает тип int по умолчанию |
C4435 (уровень 4) |
"class1": структура объекта в /vd2 изменится из-за виртуального базового класса "class2" |
C4437 (уровень 4) |
Приведение dynamic_cast из виртуального базового типа "class1" в "class2" может привести к сбою в некоторых контекстах |
C4444 (уровень 3) |
директива верхнего уровня "__unaligned" не реализована в этом контексте |
C4471 (уровень 4) |
у прямого объявления неограниченного перечисления должен быть базовый тип (предполагается тип int) |
C4472 (уровень 1) |
«identifier» является собственным перечислением: добавьте спецификатор доступа (private/public), чтобы объявить управляемое перечисление |
C4514 (уровень 4) |
"function": неиспользуемая встроенная функция была удалена |
C4536 (уровень 4) |
"type name": имя типа превышает ограничение метаданных, равное "limit" знаков |
C4545 (уровень 1) |
вычисление выражения перед запятой дает функцию, в которой отсутствует список аргументов |
C4546 (уровень 1) |
в вызове функции перед запятой отсутствует список аргументов |
C4547 (уровень 1) |
"operator": оператор перед запятой не имеет результата; требуется оператор с побочным действием |
C4548 (уровень 1) |
выражение перед запятой не имеет результата; требуется выражение с побочным действием |
C4549 (уровень 1) |
"operator": оператор перед запятой не имеет результата; возможно, имелся в виду "operator" |
C4555 (уровень 1) |
выражение не имеет результата; требуется выражение с побочным действием |
C4557 (уровень 3) |
"__assume" содержит эффект "эффект" |
C4571 (уровень 4) |
к сведению: семантика catch(...) изменилась, начиная с версии Visual C++ 7.1; структурированные исключения (SEH) более не перехватываются |
C4574 (уровень 4) |
«identifier» определен равным 0: возможно, планировалось использовать «#if identifier»? |
C4608 (уровень 3) |
«symbol1» уже инициализирован другим членом объединения в списке инициализации, «symbol2» |
C4619 (уровень 3) |
предупреждение #pragma: нет предупреждения с номером "number" |
C4623 (уровень 4) |
"derived class": не удалось создать конструктор по умолчанию, так как конструктор по умолчанию для базового класса недоступен |
C4625 (уровень 4) |
"derived class": не удалось создать конструктор копии, так как конструктор копии для базового класса недоступен |
C4626 (уровень 4) |
"derived class": не удалось создать оператор присваивания, так как оператор присваивания для базового класса недоступен |
C4628 (уровень 1) |
диграфы не поддерживаются при наличии параметра -Ze. Последовательность знаков "digraph" не преобразована в альтернативный маркер для "char" |
C4640 (уровень 3) |
"instance": создание в конструкторе локального статического объекта может привести к ошибкам при работе с потоками |
C4668 (уровень 4) |
«symbol» не определен в качестве макроса препроцессора и будет заменен в «директивах» на 0 |
C4682 (уровень 4) |
«symbol»: не указан атрибут параметра направления, по умолчанию принимается [in] |
C4686 (уровень 3) |
"user-defined type": возможное изменение поведения, изменение формата вызова для возвращаемого значения UDT |
C4692 (уровень 1) |
"функция": подпись не частного члена содержит частный собственный тип сборки "частныйТип" |
C4710 (уровень 4) |
"function": функция не является встроенной |
C4738 (уровень 3) |
хранение результатов в памяти в 32-разрядном формате с плавающей запятой, возможно снижение производительности |
C4767 (уровень 4) |
имя раздела «symbol» длиннее, чем 8 символов, и будет усечено компоновщиком |
C4786 (уровень 3) |
«symbol»: в сведениях отладки имя объекта было усечено до «number» знаков |
C4820 (уровень 4) |
"bytes" заполнение байт добавляется после создания "member_name" |
C4826 (уровень 2) |
преобразование из "type1" в "type2" выполняется с расширением знака. Это может привести к непредсказуемому поведению во время выполнения |
C4837 (уровень 4) |
обнаружен триграф: "??%c" заменяется на "%c" |
C4905 (уровень 1) |
приведение двухбайтового строкового литерала к "LPSTR" |
C4906 (уровень 1) |
строковой литерал приведен к "LPWSTR" |
C4917 (уровень 1) |
"declarator": идентификатор GUID может связываться только с классом, интерфейсом или пространством имен |
C4928 (уровень 1) |
недопустимая инициализация копии; неявно применено несколько пользовательских преобразований |
C4931 (уровень 4) |
предполагается, что при построении библиотека типов была рассчитана на "число"-разрядные указатели |
C4946 (уровень 1) |
использование reinterpret_cast между связанными классами: "класс 1" и "класс 2" |
C4962 |
"function": оптимизация, зависимая от профиля, отключена, поскольку операции оптимизации приводят к несогласованности данных профиля |
C4986 (уровень 4) |
«символ»: спецификация исключений не соответствует предыдущему объявлению |
C4987 (уровень 4) |
используется нестандартное расширение: throw (...) |
C4988 (уровень 4) |
«символ»: переменная объявлена снаружи области класса или функции |