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


Ошибки компилятора с C2400 по C2499

В статьях в этом разделе документации объясняется подмножество сообщений об ошибках, создаваемых компилятором.

Внимание

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

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

Примечание.

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

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

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

Сообщения об ошибках

Ошибка Сообщение
Ошибка компилятора C2400 встроенная ошибка синтаксиса сборщика в контексте; найдена "token"
Ошибка компилятора C2401 "идентификатор": регистрация должна быть базовой в контексте.
Ошибка компилятора C2402 "идентификатор": регистр должен быть индексом в контексте.
Ошибка компилятора C2403 "идентификатор": регистрация должна быть базовой или индексной в контексте"
Ошибка компилятора C2404 "идентификатор": незаконный регистр в контексте
Ошибка компилятора C2405 недопустимая ссылка на короткий переадресации с смещением
Ошибка компилятора C2406 "идентификатор": имя не определено в контексте
Ошибка компилятора C2407 недопустимая регистрация float в контексте
Ошибка компилятора C2408 недопустимый тип оператора PTR в контексте
Ошибка компилятора C2409 недопустимый тип, используемый в качестве оператора в контексте
Ошибка компилятора C2410 "идентификатор": неоднозначное имя члена в контексте
Ошибка компилятора C2411 "идентификатор": незаконный член структуры или объединения в контексте
Ошибка компилятора C2412 "label": метка без учета регистра
Ошибка компилятора C2413 "идентификатор": недопустимый размер выравнивания
Ошибка компилятора C2414 незаконное число операндов
Ошибка компилятора C2415 неправильный тип операнда
Ошибка компилятора C2416 Атрибут "атрибут" нельзя применить в этом контексте
Ошибка компилятора C2417 деление на ноль в контексте
Ошибка компилятора C2418 не удается удалить файл браузера: имя файла
Ошибка компилятора C2419 mod by zero in 'context'
Ошибка компилятора C2420 "идентификатор": недопустимый символ в контексте
Ошибка компилятора C2421 Оператор PTR, используемый с регистрацией в контексте
Ошибка компилятора C2422 недопустимая переопределение сегмента в контексте
Ошибка компилятора C2423 "number": незаконное масштабирование
Ошибка компилятора C2424 "token": неправильное выражение в контексте
Ошибка компилятора C2425 "token": неконстантное выражение в контексте
Ошибка компилятора C2426 "token": недопустимый оператор в контексте
Ошибка компилятора C2427 "class": не удается определить класс в этой области
Ошибка компилятора C2428 Operation: не разрешено для операнда типа 'bool'
Ошибка компилятора C2429 Для функции языка требуется флаг компилятора "параметр компилятора"
Ошибка компилятора C2430 несколько регистров индекса в контексте
Ошибка компилятора C2431 недопустимый регистр индекса в контексте
Ошибка компилятора C2432 недопустимая ссылка на 16-разрядные данные в контексте
Ошибка компилятора C2433 "идентификатор": "модификатор" не разрешен для объявлений данных
Ошибка компилятора C2434 "символ": символ, объявленный с __declspec(process) не может быть динамически инициализирован в /clr:pure режиме
Ошибка компилятора C2435 Var: динамическая инициализация требует управляемой CRT, не может компилироваться с /clr:safe
Ошибка компилятора C2436 "идентификатор": функция-член или вложенный класс в списке инициализатора конструктора
Ошибка компилятора C2437 "идентификатор": уже инициализирован
Ошибка компилятора C2438 "идентификатор": не удается инициализировать данные статического класса с помощью конструктора
Ошибка компилятора C2439 "идентификатор": не удалось инициализировать член
Ошибка компилятора C2440 "преобразование": не удается преобразовать из "type_1" в "type_2"
Ошибка компилятора C2441 "переменная": символ, объявленный с const __declspec(process) параметром /clr:pure mode
Ошибка компилятора C2442 "идентификатор": вложенное определение пространства имен не может быть встроенным или иметь атрибуты
Ошибка компилятора C2443 Конфликт размера операнда
Ошибка компилятора C2444 "идентификатор": используется прототип ANSI, найден "type", ожидаемый "{" или ";"
Ошибка компилятора C2446 Оператор: преобразование из "type_1" в "type_2" не выполняется.
Ошибка компилятора C2447 "{": отсутствует заголовок функции (старый формальный список?)
Ошибка компилятора C2448 "идентификатор": инициализатор стиля функции, как представляется, является определением функции
Ошибка компилятора C2449 найден "{" в области файла (отсутствует заголовок функции?)
Ошибка компилятора C2450 Выражение switch типа "type" является недопустимым
Ошибка компилятора C2451 условное выражение типа "type" является незаконным
Ошибка компилятора C2452 "type": недопустимый тип источника для safe_cast
Ошибка компилятора C2453 "type": недопустимый тип целевого объекта для safe_cast
Ошибка компилятора C2454 "идентификатор": имя псевдонима пространства имен нельзя объявить с помощью квалифицированного имени.
Ошибка компилятора C2455 Класс ссылок WinRT, производный от импортированного базового класса, не может быть абстрактным.
Ошибка компилятора C2456 Класс "class" невидимый класс ссылок не может иметь открытый видимый конструктор. Запечатайте класс или укажите конструктор как '', 'internalprotected private' или 'private' вместо него.
Ошибка компилятора C2457 "идентификатор": предопределенный макрос не может отображаться за пределами тела функции
Ошибка компилятора C2458 "идентификатор": переопределение в определении
Ошибка компилятора C2459 "идентификатор": определяется; не может добавляться в качестве анонимного члена.
Ошибка компилятора C2460 "identifier_1": использует "identifier_2", который определяется
Ошибка компилятора C2461 Класс: синтаксис конструктора, отсутствующий формальных параметров
Ошибка компилятора C2462 "идентификатор": не удается определить тип в "new-expression"
Ошибка компилятора C2464 Type: не может использовать "new" для выделения ссылки
Ошибка компилятора C2465 Невозможно определить анонимный тип в пределах круглых скобок
Ошибка компилятора C2466 Не удается выделить массив константного размера 0
Ошибка компилятора C2467 незаконное объявление анонимного "user_defined_type"
Ошибка компилятора C2468 Конструктор не может быть 'constexpr' в классе или структуре с виртуальными базовыми классами
Ошибка компилятора C2469 'new': не удается выделить объекты 'void'
Ошибка компилятора C2470 "function": выглядит как определение функции, но отсутствует список параметров; пропуск видимого тела
Ошибка компилятора C2471 не удается обновить базу данных программы "filename"
Ошибка компилятора C2472 Невозможно создать функцию в управляемом коде: message; скомпилировать с помощью /clr для создания смешанного образа.
Ошибка компилятора C2473 "идентификатор": выглядит как определение функции, но отсутствует список параметров.
Ошибка компилятора C2474 "идентификатор": отсутствует смежная точка с запятой, может быть ключевым словом или идентификатором.
Ошибка компилятора C2475 "identifier": redefinition; Несоответствие описателя 'constexpr'
Ошибка компилятора C2477 "member": статический член данных не может быть инициализирован с помощью производного класса
Ошибка компилятора C2478 объявление несовместимо с "экземпляром"
Ошибка компилятора C2479 "идентификатор":allocate( ) "" действителен только для элементов данных статической экстентности
Ошибка компилятора C2480 "идентификатор":thread "" действителен только для элементов данных статической экстентности
Ошибка компилятора C2481 "идентификатор": допустимо только для статических элементов и переменных в пространстве имен или области блока. thread_local
Ошибка компилятора C2482 "идентификатор": динамическая инициализация локальных данных потока не разрешена в управляемом коде ИЛИ WINRT
Ошибка компилятора C2483 "идентификатор": объект с деструктором или не агрегированным типом не может быть объявлен с длительностью хранилища потоков в коде managed/WINRT
Ошибка компилятора C2485 "идентификатор": нераспознанный расширенный атрибут
Ошибка компилятора C2486 '__LOCAL_SIZE' разрешен только в функции с атрибутом 'naked'
Ошибка компилятора C2487 "identifier": член класса интерфейса dll не может быть объявлен с помощью интерфейса dll
Ошибка компилятора C2488 "идентификатор": "naked" может применяться только к определениям функций, не являющихся членами
Ошибка компилятора C2489 "идентификатор": инициализированная автоматическая или регистрируемая переменная не разрешена в области функций в функции "голая"
Ошибка компилятора C2490 "ключевое слово" не разрешено в функции с атрибутом 'naked'
Ошибка компилятора C2491 "identifier": определение функции dllimport запрещено
Ошибка компилятора C2492 "переменная": данные с длительностью хранилища потоков могут не иметь интерфейса dll
Ошибка компилятора C2493 недопустимая форма __based
Ошибка компилятора C2494 "ключевое слово" нельзя вызывать из выражения фильтра или __finally/finally блока
Ошибка компилятора C2495 "идентификатор": "__declspec(noexcept)" может применяться только к объявлениям или определениям функций
Ошибка компилятора C2496 "identifier": "selectany" может применяться только к элементам данных с внешней компоновкой
Ошибка компилятора C2497 "идентификатор": "implementation_key" может применяться только к объявлениям функций
Ошибка компилятора C2498 "function": "novtable" может применяться только к объявлениям классов или определениям
Ошибка компилятора C2499 "class": класс не может быть собственным базовым классом

См. также

Компилятор C/C++ и средства сборки ошибок и предупреждений
Ошибки компилятора C2001 — C3999, C7000 — C7999