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