Ошибки компилятора с C2300 по C2399
В статьях в этом разделе документации объясняется подмножество сообщений об ошибках, создаваемых компилятором.
Внимание
Компиляторы и средства сборки Visual Studio могут сообщать о многих типах ошибок и предупреждений. После обнаружения ошибки или предупреждения средства сборки могут делать предположения о намерении кода и пытаться продолжить работу, чтобы в одно и то же время сообщалось больше проблем. Если средства делают неверное предположение, последующие ошибки или предупреждения не могут применяться к проекту. При устранении проблем в проекте всегда начинайте с первой зарегистрированной ошибки (или предупреждения) и выполняйте повторную сборку как можно чаще. Одно исправление может привести к возникновению многих последующих ошибок.
Чтобы получить справку по определенному диагностическом сообщению в Visual Studio, выберите его в окне вывода и нажмите клавишу F1 . Visual Studio открывает страницу документации для этой ошибки, если она существует. Вы также можете использовать средство поиска в верхней части страницы, чтобы найти статьи об определенных ошибках или предупреждениях. Или просмотрите список ошибок и предупреждений по инструменту и введите оглавление на этой странице.
Примечание.
Не все ошибки или предупреждения Visual Studio документируются. Во многих случаях диагностическое сообщение предоставляет все доступные сведения. Если вы приземлились на этой странице при использовании F1 , и вы думаете, что сообщение об ошибке или предупреждении требует дополнительного объяснения, сообщите нам об этом. Вы можете использовать кнопки обратной связи на этой странице, чтобы вызвать проблему документации на GitHub. Если вы считаете, что ошибка или предупреждение неправильно, или вы нашли другую проблему с набором инструментов, сообщите о проблеме продукта на сайте Сообщество разработчиков. Вы также можете отправлять отзывы и вводить ошибки в интегрированной среде разработки. В Visual Studio перейдите в строку меню и выберите "Отправить отзыв о > проблеме" или отправьте предложение с помощью справки > по отправке > отзывов > отправить предложение. Некоторые разделы об ошибках компилятора были созданы, которые не создаются компилятором и теперь перенаправляются на эту страницу.
Вы можете найти дополнительную помощь по ошибкам и предупреждениям на форумах Microsoft Learn Q&A . Или найдите номер ошибки или предупреждения на сайте Сообщество разработчиков Visual Studio C++. Вы также можете искать решения в стеке Overflow .
Ссылки на дополнительные справочные материалы и ресурсы сообщества см. в разделе справки и сообщества Visual C++.
Сообщения об ошибках
Ошибка | Сообщение |
---|---|
Ошибка компилятора C2300 | "class": класс не имеет деструктора "~class" |
Ошибка компилятора C2301 | слева от "->~identifier" должен указывать на класс/структуру/объединение |
Ошибка компилятора C2302 | слева от '.~identifier' должен иметь тип класса/структуры/объединения |
Ошибка компилятора C2303 | Структурированная обработка исключений не может использоваться в корутине |
Ошибка компилятора C2304 | "ключевое слово" нельзя использовать внутри блока catch |
Ошибка компилятора C2305 | Файл не содержит сведений об отладке для этого модуля |
Ошибка компилятора C2306 | Файл не содержит последние сведения об отладке для этого модуля. |
Ошибка компилятора C2307 | Директива pragma должна быть перемещена вне функции, если включена добавочная компиляция |
Ошибка компилятора C2308 | объединение несовпадных строк |
Ошибка компилятора C2309 | Обработчик catch ожидал объявление исключений с скобками |
Ошибка компилятора C2310 | Обработчики catch должны указывать один тип |
Ошибка компилятора C2311 | "тип": поймали "..." номер строки |
Ошибка компилятора C2312 | "type1": перехватывается по номеру строки "type2" |
Ошибка компилятора C2313 | Тип1: по ссылке ('type2') в номере строки |
Ошибка компилятора C2314 | Ключевое слово "keyword1" устарело: используйте "keyword2" вместо него |
Ошибка компилятора C2315 | "type1": ссылка поймана по номеру строки "type2" |
Ошибка компилятора C2316 | "type": невозможно поймать как деструктор и /или конструктор копирования недоступны или удалены |
Ошибка компилятора C2317 | Блок try, запускающийся в строке "number", не имеет обработчиков catch |
Ошибка компилятора C2318 | нет блока try, связанного с этим блоком catch |
Ошибка компилятора C2319 | После "try/catch" должен следовать составной оператор. Отсутствует "{" |
Ошибка компилятора C2320 | ожидается значение ":", чтобы следовать за описателями доступа "описатель" |
Ошибка компилятора C2321 | "идентификатор" является ключевым словом и не может использоваться в этом контексте |
Ошибка компилятора C2322 | "identifier": адрес dllimport "identifier" не является статическим |
Ошибка компилятора C2323 | "идентификатор": новые или удаленные функции не могут быть объявлены статическими или в пространстве имен, отличном от глобального пространства имен. |
Ошибка компилятора C2324 | "идентификатор": непредвиденное справа от "::~" |
Ошибка компилятора C2325 | Type1: непредвиденный тип справа от "->~": ожидаемое "type2" |
Ошибка компилятора C2326 | "декларатор": функция не может получить доступ к идентификатору |
Ошибка компилятора C2327 | "идентификатор": не является именем типа, статическим или перечислителем |
Ошибка компилятора C2328 | "keyword": ключевое слово еще не поддерживается |
Ошибка компилятора C2329 | "идентификатор": __ptr64 недоступны для указателей на функции |
Ошибка компилятора C2330 | "implementation_key( )" является допустимым только в регионе, ограниченном #pragma start_map_region/stop_map_region |
Ошибка компилятора C2331 | доступ к идентификатору теперь определяется как "специальные возможности1", ранее он был определен как "специальные возможности2". |
Ошибка компилятора C2332 | Typedef: отсутствует имя тега |
Ошибка компилятора C2333 | "function": ошибка в объявлении функции; пропускает текст функции |
Ошибка компилятора C2334 | непредвиденные маркеры, предшествующие "token"; пропуская видимое тело функции |
Ошибка компилятора C2335 | "идентификатор": тип не может быть введен в списке параметров функции |
Ошибка компилятора C2336 | "type": недопустимый тип |
Ошибка компилятора C2337 | "атрибут": атрибут не найден |
Ошибка компилятора C2338 | (сообщение об ошибке от внешнего поставщика) |
Ошибка компилятора C2339 | "идентификатор": недопустимый тип в внедренном IDL |
Ошибка компилятора C2340 | "идентификатор": "статический" может использоваться только в определении класса |
Ошибка компилятора C2341 | "section": сегмент должен быть определен с помощью #pragma data_seg, code_seg или раздела перед использованием |
Ошибка компилятора C2342 | синтаксическая ошибка: конфликтующие квалификаторы типов |
Ошибка компилятора C2343 | Section: конфликтующие атрибуты раздела |
Ошибка компилятора C2344 | align(number): выравнивание должно быть двумя |
Ошибка компилятора C2345 | align(number): недопустимое значение выравнивания |
Ошибка компилятора C2346 | "function" не может быть скомпилирован как собственный: "объяснение" |
Ошибка компилятора C2347 | Является устаревшей. |
Ошибка компилятора C2348 | "type": не является агрегатом стилей C, нельзя экспортировать в внедренном IDL |
Ошибка компилятора C2349 | Функция не может быть скомпилирована как управляемая: "объяснение"; используйте #pragma неуправляемых |
Ошибка компилятора C2350 | "идентификатор" не является статическим элементом |
Ошибка компилятора C2351 | устаревший синтаксис инициализации конструктора C++ |
Ошибка компилятора C2352 | "идентификатор": незаконный вызов нестатитической функции-члена |
Ошибка компилятора C2353 | Спецификация исключений не разрешена |
Ошибка компилятора C2354 | Является устаревшей. |
Ошибка компилятора C2355 | "this": можно ссылаться только в нестатических функциях-членах или нестатических инициализаторах элементов данных |
Ошибка компилятора C2356 | Сегмент инициализации не должен изменяться во время единицы перевода |
Ошибка компилятора C2357 | "идентификатор": должен быть функцией типа "type" |
Ошибка компилятора C2358 | "идентификатор": статическое свойство не может быть определено вне определения класса |
Ошибка компилятора C2359 | Является устаревшей. |
Ошибка компилятора C2360 | инициализация идентификатора пропускается меткой case |
Ошибка компилятора C2361 | инициализация идентификатора пропускается меткой по умолчанию |
Ошибка компилятора C2362 | инициализация идентификатора пропускается меткой goto. |
Ошибка компилятора C2363 | Для функции встроенного числового ограничения компилятора требуется строковый литеральный аргумент |
Ошибка компилятора C2364 | "type": недопустимый тип для пользовательского атрибута |
Ошибка компилятора C2365 | "member1": redefinition; предыдущее определение было "member2" |
Ошибка компилятора C2366 | "identifier": redefinition; разные описатели implementation_key |
Ошибка компилятора C2367 | Является устаревшей. |
Ошибка компилятора C2368 | "identifier": redefinition; разные описатели выделения |
Ошибка компилятора C2369 | "identifier": redefinition; разные подстроки |
Ошибка компилятора C2370 | "identifier": redefinition; другой класс хранилища |
Ошибка компилятора C2371 | "identifier": redefinition; различные основные типы |
Ошибка компилятора C2372 | "identifier": redefinition; различные типы косвенного обращения |
Ошибка компилятора C2373 | "identifier": redefinition; разные модификаторы типов |
Ошибка компилятора C2374 | "identifier": redefinition; несколько инициализаций |
Ошибка компилятора C2375 | "идентификатор": переопределение; другая компоновка |
Ошибка компилятора C2376 | "identifier": redefinition; разное выделение на основе |
Ошибка компилятора C2377 | "identifier": redefinition; typedef не может быть перегружен любым другим символом |
Ошибка компилятора C2378 | "identifier": redefinition; символ не может быть перегружен типдефом |
Ошибка компилятора C2379 | Формальный номер параметра имеет другой тип при повышении |
Ошибка компилятора C2380 | type(s) выше "identifier" (конструктор с типом возвращаемого значения или незаконное переопределение текущего имени класса?) |
Ошибка компилятора C2381 | "identifier": redefinition; "__declspec(noreturn)" или "[[noreturn]] отличается |
Ошибка компилятора C2382 | "identifier": redefinition; разные спецификации исключений |
Ошибка компилятора C2383 | "идентификатор": аргументы по умолчанию не допускаются для этого символа |
Ошибка компилятора C2384 | Member: не может применять thread_local или __declspec(thread) к члену управляемого или winRT-класса. |
Ошибка компилятора C2385 | неоднозначный доступ к "члену" |
Ошибка компилятора C2386 | "идентификатор": символ с таким именем уже существует в текущей области |
Ошибка компилятора C2387 | "идентификатор": неоднозначный базовый класс |
Ошибка компилятора C2388 | "идентификатор": символ не может быть объявлен как с __declspec(appdomain) и __declspec(process) |
Ошибка компилятора C2389 | "operator": незаконный операнд "nullptr" |
Ошибка компилятора C2390 | "идентификатор": неправильный класс хранилища "описатель" |
Ошибка компилятора C2391 | "идентификатор": "друг" нельзя использовать во время определения типа |
Ошибка компилятора C2392 | "member1": типы возвращаемых ковариантных значений не поддерживаются в типах managed/WinRT, в противном случае параметр "member2" будет переопределен |
Ошибка компилятора C2393 | Символ: символ для каждого приложения нельзя выделить в сегменте "сегмент" |
Ошибка компилятора C2394 | Оператор type::operator : недопустимый оператор CLR/WinRT. По крайней мере один параметр должен иметь следующие типы: "T^", "T^%", "T^&", где T = "type" |
Ошибка компилятора C2395 | Оператор type::operator : недопустимый оператор CLR/WinRT. По крайней мере один параметр должен иметь следующие типы: "T", "T%", "T", "T^", "T^%", "T^&", где T = "type" |
Ошибка компилятора C2396 | "type1::operator type2": функция преобразования, определяемая пользователем clR/WinRT, недопустимая. Должен быть преобразован из или преобразовывается в: T^, T^%, T^&&, где T = type1 |
Ошибка компилятора C2397 | Для преобразования из типа1 в type2 требуется сужение преобразования |
Ошибка компилятора C2398 | Элемент "number": преобразование из "type1" в "type2" требует сужающего преобразования |
Ошибка компилятора C2399 | Является устаревшей. |
См. также
Компилятор C/C++ и средства сборки ошибок и предупреждений
Ошибки компилятора C2001 — C3999, C7000 — C7999