Поделиться через


Предупреждения компилятора Microsoft C/C++ c5200 по C5399

В статьях в этом разделе описаны предупреждения компилятора Microsoft C/C++ c5200 по C5399.

Внимание

Компиляторы и средства сборки Visual Studio могут сообщать о многих типах ошибок и предупреждений. После обнаружения ошибки или предупреждения средства сборки могут делать предположения о намерении кода и пытаться продолжить работу, чтобы в одно и то же время сообщалось больше проблем. Если средства делают неверное предположение, последующие ошибки или предупреждения не могут применяться к проекту. При устранении проблем в проекте всегда начинайте с первой зарегистрированной ошибки (или предупреждения) и выполняйте повторную сборку как можно чаще. Одно исправление может привести к возникновению многих последующих ошибок.

Чтобы получить справку по определенному диагностическом сообщению в Visual Studio, выберите его в окне вывода и нажмите клавишу F1 . Visual Studio открывает страницу документации для этой ошибки, если она существует. Вы также можете использовать средство поиска в верхней части страницы, чтобы найти статьи об определенных ошибках или предупреждениях. Или просмотрите список ошибок и предупреждений по инструменту и введите оглавление на этой странице.

Примечание.

Не все ошибки или предупреждения Visual Studio документируются. Во многих случаях диагностическое сообщение предоставляет все доступные сведения. Если вы приземлились на этой странице при использовании F1 , и вы думаете, что сообщение об ошибке или предупреждении требует дополнительного объяснения, сообщите нам об этом. Вы можете использовать кнопки обратной связи на этой странице, чтобы вызвать проблему документации на GitHub. Если вы считаете, что ошибка или предупреждение неправильно, или вы нашли другую проблему с набором инструментов, сообщите о проблеме продукта на сайте Сообщество разработчиков. Вы также можете отправлять отзывы и вводить ошибки в интегрированной среде разработки. В Visual Studio перейдите в строку меню и выберите "Отправить отзыв о > проблеме" или отправьте предложение с помощью справки > по отправке > отзывов > отправить предложение. Некоторые разделы об ошибках компилятора были созданы, которые не создаются компилятором и теперь перенаправляются на эту страницу.

Вы можете найти дополнительную помощь по ошибкам и предупреждениям на форумах Microsoft Learn Q&A . Или найдите номер ошибки или предупреждения на сайте Сообщество разработчиков Visual Studio C++. Вы также можете искать решения в стеке Overflow .

Ссылки на дополнительные справочные материалы и ресурсы сообщества см. в разделе справки и сообщества Visual C++.

Предупреждающие сообщения

Предупреждение Сообщение
Предупреждение компилятора (уровень 1) C5200 компонент "feature-name" требует флаг компилятора "option-name"
Предупреждение компилятора (уровень 1) C5201 Объявление модуля может отображаться только в начале единицы перевода, если не используется глобальный фрагмент модуля.
Предупреждение компилятора (уровень 1) C5202 Глобальный фрагмент модуля может содержать только директивы препроцессора
Предупреждение компилятора (уровень 1) C5203 Имя декларатора с скобками после "явного" будет считаться явным описателем в C++20
Предупреждение компилятора (уровень 3, выключен) C5204 "type-name": класс имеет виртуальные функции, но его тривиальный деструктор не является виртуальным; Экземпляры объектов, производных от этого класса, могут быть неправильно деструктированы
Предупреждение компилятора (уровень 4) C5205 Удаление абстрактного класса "type-name", имеющего неиртуализированный деструктор, приводит к неопределенному поведению
Предупреждение компилятора (уровень 3) C5206 Вывод типов возвращаемых значений для корутин является нестандартным расширением
Предупреждение компилятора (уровень 1) C5207 простое требование утверждает допустимость выражения "e->id". Ты имел в виду"{ e } -> id? Вы можете отключить предупреждение с помощью '{ e->id }'
Предупреждение компилятора (уровень 1) C5208 неименованный класс, используемый в typedef имени, не может объявлять элементы, отличные от нестатических элементов данных, перечислений членов или классов членов.
Предупреждение компилятора (уровень 1) C5209 Синтаксис C++20 для записи инициализации изменился на "& ... инициализатор идентификатора оптимизатора
Предупреждение компилятора (уровень 1) C5210 "name" не является допустимой ссылкой на единицу заголовка; игнорируя
Предупреждение компилятора (уровень 1) C5212 "name" не является допустимой именованной ссылкой; рассматривать как ссылку на файл
Предупреждение компилятора (уровень 1) C5213 Именованной ссылкой "name" считается именованной секцией, но имя не указано; рассматривается как ссылка на файл.
Предупреждение компилятора (уровень 4, выключен) C5214 применение модификатора к операнду с переменным типом не рекомендуется использовать в C++20
Предупреждение компилятора (уровень 4, выключен) C5215 Параметр функции с переменным типом не рекомендуется использовать в C++20
Предупреждение компилятора (уровень 4, выключен) C5216 "name" переменный тип возвращаемого значения не рекомендуется использовать в C++20
Предупреждение компилятора (уровень 4, выключен) C5217 Структурированное объявление привязки, включающее переменную, не рекомендуется использовать в C++20
Предупреждение компилятора (уровень 1) C5218 удаление может не вести себя как предполагаемое, если используются несоответствующие коммутаторы "/Zc:sizedDealloc-" или "/Zc:alignedNew-"
Предупреждение компилятора (уровень 2, выключен) C5219 неявное преобразование из типа 1 в тип-2, возможное потеря данных
Предупреждение компилятора (уровень 4, выключен) C5220 "name": нестатический член данных с изменяемым типом больше не подразумевает, что компилятор создал конструкторы копирования и перемещения и операторы назначения копирования и перемещения не являются тривиальными
Предупреждение компилятора (уровень 1) C5221 xfg::rename не рекомендуется.
Предупреждение компилятора (уровень 3) C5222 "attribute-name": все неуправляемые имена атрибутов зарезервированы для будущей стандартизации
Предупреждение компилятора (уровень 3) C5223 Все имена атрибутов в пространстве имен атрибутов msvc зарезервированы для реализации.
Предупреждение компилятора (уровень 3) C5224 Все имена атрибутов в пространстве имен атрибутов "namespace-name" зарезервированы для будущей стандартизации
Предупреждение компилятора (уровень 1) C5225 "symbol": экспортируемая встроенная функция, определенная в фрагменте частного модуля, является нестандартным расширением
Предупреждение компилятора (уровень 1) C5226 Символ: экспортируемый шаблон, определенный в фрагменте частного модуля, не имеет доступного экземпляра
Предупреждение компилятора (уровень 4) C5227 нестандартное расширение, разрешающее "символ" на "значение", которое не отображается включено /permissive- .
Предупреждение компилятора (уровень 4) C5228 нестандартное расширение , "идентификатор", разрешенное члену зависимой базы. Эта подстановка не допускается /permissive-.
Предупреждение компилятора (уровень 4) C5229 нестандартное расширение, скрытая другая функция "имя-функция" была найдена подстановкой имен, в которой /permissive-не разрешено.
Предупреждение компилятора C5230 нестандартное расширение , идентификатор был разрешен в "символ-1" в разделе/permissive. В этом разделе /permissive- будет разрешено использовать символ-2.
Предупреждение компилятора (уровень 3) C5231 Выражение "co_await promise.final_suspend()" должно быть неисключающим
Предупреждение компилятора (уровень 1) C5232 в C++20 это сравнение вызывает рекурсивно "name"
Предупреждение компилятора (уровень 4, выключен) C5233 явное лямбда-запись "идентификатор" не используется
Предупреждение компилятора (уровень 1) C5234 Ошибка файловой системы: "filename" не является допустимым именем заголовка; игнорируется
Предупреждение компилятора (уровень 1) C5235 Ошибка синтаксического анализа JSON: сообщение; пропускание имени файла
Предупреждение компилятора (уровень 1) C5236 Неправильно сформировано JSON: сообщение; игнорируется имя файла.
Предупреждение компилятора (уровень 1) C5237 не удается разрешить запись блока заголовка "name" в файл заголовка в файле "имя_файла"; игнорируя запись
Предупреждение компилятора (уровень 1) C5238 Ошибка файловой системы: не удается открыть имя файла для чтения; игнорировать
Предупреждение компилятора (уровень 4) C5239 Символ: потенциально вызываемая функция из объявленной __declspec(nothrow)функции. Неопределенное поведение может произойти, если создается исключение.
Предупреждение компилятора (уровень 4) C5240 Атрибут "attribute-name": атрибут игнорируется в этой синтаксической позиции
Предупреждение компилятора (уровень 1) C5241 "/exportHeader" использование для поиска имени заголовка не рекомендуется; предпочитаете "/headerName:name value=filename"
Предупреждение компилятора (уровень 1) C5242 синтаксическая ошибка в pragma "идентификатор"
Предупреждение компилятора (уровень 1, выключен) C5243 "type-name": использование неполного класса "class-name" может вызвать потенциальное нарушение правила определения из-за ограничения ABI
Предупреждение компилятора (уровень 1) C5244 "#include <имя> файла" в представлении модуля "имя модуля-1" появляется ошибочно. Рассмотрите возможность перемещения этой директивы перед объявлением модуля или замените текстовое включение на "import <module-name-2>;".
Предупреждение компилятора (уровень 4, выключен) C5245 "function": удалена функция без ссылок с внутренней компоновкой
Предупреждение компилятора (уровень 1, выключен) C5246 "member": инициализация подобъекта должна быть заключена в фигурные скобки
Предупреждение компилятора (уровень 1, выключен) C5247 раздел "section-name" зарезервирован для динамической инициализации C++. Создание раздела вручную будет препятствовать динамической инициализации C++ и может привести к неопределенному поведению.
Предупреждение компилятора (уровень 1, выключен) C5248 раздел "section-name" зарезервирован для динамической инициализации C++. Переменные, которые вручную помещают в раздел, могут быть оптимизированы, и их порядок относительно созданных компилятором динамических инициализаторов не определен.
Предупреждение компилятора (уровень 1, выключен) C5249 Bitfield типа "enumeration_name" имеет именованные перечислители со значениями, которые не могут быть представлены в заданной ширине битового поля "bitfield_width".
Предупреждение компилятора (уровень 3, выключен) C5250 "function_name": встроенная функция не объявлена.
Предупреждение компилятора (уровень 4, выключен) C5251 Имя сегмента изменилось после включения заголовка
Предупреждение компилятора (уровень 4) C5252 Несколько разных типов привели к тому же хэш-значению типа XFG; PDB будет записывать только данные для одного из них.
Предупреждение компилятора (уровень 4) C5253 Не локальная лямбда-лямбда не может иметь запись по умолчанию
Предупреждение компилятора (уровень 4, выключен) C5254 Для функции языка "terse static assert" требуется флаг компилятора "/std:c++17"
Предупреждение компилятора (уровень 3) C5255 обнаружен нетерминированный двунаправленный символ: U+XXXX
Предупреждение компилятора (уровень 1, выключен) C5256 Перечисление: неопределяющее объявление перечисления с фиксированным базовым типом разрешено только в виде автономного объявления.
Предупреждение компилятора (уровень 1 или 4) C5257 "перечисление": перечисление было объявлено ранее без фиксированного базового типа
Предупреждение компилятора (уровень 4, выключен) C5258 явное запись символа не требуется для этого использования
Предупреждение компилятора (уровень 4, выключен) C5259 "специализированный тип": явная специализация требует "template <>"
Предупреждение компилятора (уровень 1) C5260 Константная переменная "переменная-имя" имеет внутреннюю компоновку в контексте файла заголовка, но внешняя компоновка в контексте импортированного блока заголовка; рекомендуется объявить его "встроенным" и если он будет совместно использоваться между единицами перевода или статическим, чтобы выразить намерение использовать его локально для этой единицы перевода.
Предупреждение компилятора (уровень 2) C5261 целочисленный тип не может представлять все значения перечислителя в перечислении "enum-name"
Предупреждение компилятора (уровень 1, ошибка, отключение) C5262 неявное падение происходит здесь; Отсутствует ли оператор останова? Использование [[fallthrough]] , когда break оператор намеренно опущен между вариантами
Предупреждение компилятора (уровень 4, выключен) C5263 Вызов 'std::move' во временном объекте предотвращает удаление копирования
Предупреждение компилятора (уровень 4, выключен) C5264 "переменная-имя": переменная const не используется
Предупреждение компилятора (уровень 1) C5265 не удается открыть путь поиска "path"
Предупреждение компилятора (уровень 4, выключен) C5266 Квалификатор const для возвращаемого типа не влияет
Предупреждение компилятора C5267 Определение неявного оператора конструктора или назначения копирования для типа не рекомендуется, так как он имеет оператор назначения, предоставленный пользователем, или конструктор копирования
Предупреждение компилятора (уровень 1) C5268 Не удалось выделить память по фиксированному адресу 0x. Используется /Yb для указания определенной базы адресов, если требуются файлы PCH-файлов битовой точности.
Предупреждение компилятора (уровень 1) C5269 Не удалось выделить память PCH по фиксированному адресу 0x. Используется /Ym для указания определенной базы адресов, если требуются файлы PCH-файлов битовой точности.
Предупреждение компилятора (уровень 3) C5270 Значение не допускается для параметра "switch name"; допустимые значения: список значений
Предупреждение компилятора (уровень 4) C5271 ранее импортированная сборка "assembly1" имеет то же имя, что и импортированная сборка "assembly2". Это намеренно?
Предупреждение компилятора (уровень 1) C5272 Создание объекта не копируемого типа "type" не является стандартным. Если копия требуется во время выполнения, она будет выполнена так же, как если бы memcpy.
Предупреждение компилятора (уровень 1) C5273 изменение поведения: _Alignas при анонимном типе больше не игнорируются (повышенные члены будут выравнивать)
Предупреждение компилятора (уровень 1) C5274 изменение поведения: _Alignas больше не применяется к типу type (применяется только к объявленным объектам данных)
Предупреждение компилятора (ошибка) C5275 Сборка фасада "name", импортируемая в "/clr"; отсутствует параметр "/clr:netcore"?
Предупреждение компилятора (уровень 1, ошибка) C5300 "#pragma omp atomic": левый операнд оператора должен соответствовать левой стороне выражения назначения
Предупреждение компилятора (уровень 1) C5301 "#pragma omp for": "цикл-индекс" увеличивается, пока условие цикла использует "сравнение"; не завершающий цикл?
Предупреждение компилятора (уровень 1) C5302 "#pragma omp for": "цикл-индекс" уменьшается, пока условие цикла использует "сравнение"; не завершающий цикл?
Предупреждение компилятора (уровень 1) C5303 функция, помеченная с [[msvc::intrinsic]] помощью функции, не привела к тому, что приведение без операции
Предупреждение компилятора (уровень 1) C5304 Объявление, указанное в объявлении using-declaration "name1", экспортируемом из этого модуля, имеет внутреннюю компоновку и использование такого имени за пределами модуля неправильно сформировано; рассмотрите возможность объявления "name2"inline для использования его за пределами этого модуля.
Предупреждение компилятора (уровень 1) C5305 "name": явное объявление экземпляра, которое следует явному определению экземпляра, игнорируется

См. также

Компилятор C/C++ и средства сборки ошибок и предупреждений
Предупреждения компилятора C4000 — C5999