Ошибки компилятора с C2900 по C2999
В статьях в этом разделе документации объясняется подмножество сообщений об ошибках, создаваемых компилятором.
Внимание
Компиляторы и средства сборки Visual Studio могут сообщать о многих типах ошибок и предупреждений. После обнаружения ошибки или предупреждения средства сборки могут делать предположения о намерении кода и пытаться продолжить работу, чтобы в одно и то же время сообщалось больше проблем. Если средства делают неверное предположение, последующие ошибки или предупреждения не могут применяться к проекту. При устранении проблем в проекте всегда начинайте с первой зарегистрированной ошибки (или предупреждения) и выполняйте повторную сборку как можно чаще. Одно исправление может привести к возникновению многих последующих ошибок.
Чтобы получить справку по определенному диагностическом сообщению в Visual Studio, выберите его в окне вывода и нажмите клавишу F1 . Visual Studio открывает страницу документации для этой ошибки, если она существует. Вы также можете использовать средство поиска в верхней части страницы, чтобы найти статьи об определенных ошибках или предупреждениях. Или просмотрите список ошибок и предупреждений по инструменту и введите оглавление на этой странице.
Примечание.
Не все ошибки или предупреждения Visual Studio документируются. Во многих случаях диагностическое сообщение предоставляет все доступные сведения. Если вы приземлились на этой странице при использовании F1 , и вы думаете, что сообщение об ошибке или предупреждении требует дополнительного объяснения, сообщите нам об этом. Вы можете использовать кнопки обратной связи на этой странице, чтобы вызвать проблему документации на GitHub. Если вы считаете, что ошибка или предупреждение неправильно, или вы нашли другую проблему с набором инструментов, сообщите о проблеме продукта на сайте Сообщество разработчиков. Вы также можете отправлять отзывы и вводить ошибки в интегрированной среде разработки. В Visual Studio перейдите в строку меню и выберите "Отправить отзыв о > проблеме" или отправьте предложение с помощью справки > по отправке > отзывов > отправить предложение. Некоторые разделы об ошибках компилятора были созданы, которые не создаются компилятором и теперь перенаправляются на эту страницу.
Вы можете найти дополнительную помощь по ошибкам и предупреждениям на форумах Microsoft Learn Q&A . Или найдите номер ошибки или предупреждения на сайте Сообщество разработчиков Visual Studio C++. Вы также можете искать решения в стеке Overflow .
Ссылки на дополнительные справочные материалы и ресурсы сообщества см. в разделе справки и сообщества Visual C++.
Сообщения об ошибках
Ошибка | Сообщение |
---|---|
Ошибка компилятора C2900 | "декларатор": шаблоны функций-членов в классах WinRT должны быть "закрытыми", "внутренними" или "защищенными частными" |
Ошибка компилятора C2901 | "идентификатор": универсальный интерфейс или делегат не может быть общедоступным |
Ошибка компилятора C2902 | "token": непредвиденный маркер, следующий за шаблоном или универсальным, ожидаемый идентификатор (устаревший в Visual Studio 2022.) |
Ошибка компилятора C2903 | "идентификатор": символ не является шаблоном класса или универсальным шаблоном или шаблоном функции |
Ошибка компилятора C2904 | "идентификатор": имя, уже используемое для шаблона в текущей области |
Ошибка компилятора C2905 | Является устаревшей. |
Ошибка компилятора C2906 | Шаблон: для явной специализации требуется шаблон <> |
Ошибка компилятора C2907 | Аргумент register "number" не указывает допустимый номер регистра |
Ошибка компилятора C2908 | явная специализация; "шаблон" уже создан экземпляр |
Ошибка компилятора C2909 | "идентификатор": явное создание экземпляра шаблона функции требует возвращаемого типа |
Ошибка компилятора C2910 | "function": не может быть явно специализированным |
Ошибка компилятора C2911 | "member": нельзя объявить или определить в текущей области |
Ошибка компилятора C2912 | Явное объявление специализации не является специализацией шаблона функции |
Ошибка компилятора C2913 | явная специализация; "объявление" не является специализацией шаблона класса |
Ошибка компилятора C2914 | "identifier": не может выводить шаблон/универсальный аргумент в качестве аргумента функции неоднозначно |
Ошибка компилятора C2915 | "идентификатор": "type" нельзя использовать непосредственно на опубликованной поверхности типа WinRT. Вместо этого используйте Platform::Object^, чтобы передать этот тип |
Ошибка компилятора C2916 | "identifier": [FlagsAttribute] (только) должен быть указан в общедоступном перечислении с базовым типом unsigned int |
Ошибка компилятора C2917 | "идентификатор": недопустимый параметр шаблона (устаревший в Visual Studio 2022.) |
Ошибка компилятора C2918 | "идентификатор": индексированные свойства нельзя использовать на опубликованной поверхности типа WinRT |
Ошибка компилятора C2919 | "type": операторы не могут использоваться на опубликованной поверхности типа WinRT |
Ошибка компилятора C2920 | redefinition: "type": шаблон класса/generic уже объявлен как "объявление" |
Ошибка компилятора C2921 | redefinition: "type": шаблон класса/generic переопределен как "объявление" |
Ошибка компилятора C2922 | "interface": интерфейс WinRT не может содержать статические элементы |
Ошибка компилятора C2923 | "type": "identifier" не является допустимым аргументом шаблона или универсального типа для параметра "параметр" |
Ошибка компилятора C2924 | аргумент подпрограммы __declspec(прерывание) не в R2 |
Ошибка компилятора C2925 | подпрограмма __declspec(прерывание) не может использовать плавающую точку |
Ошибка компилятора C2926 | "идентификатор": инициализатор элементов по умолчанию не допускается для члена анонимной структуры в союзе |
Ошибка компилятора C2927 | "идентификатор": шаблон функции должен вызываться по крайней мере с одним аргументом |
Ошибка компилятора C2928 | явное создание экземпляров; "идентификатор" не является функцией или статическим элементом данных класса "class" класса шаблона. |
Ошибка компилятора C2929 | "декларатор": явное создание экземпляра; не может явно принудительно и подавлять экземпляр члена класса шаблона. |
Ошибка компилятора C2930 | Class: template-id/generic-id переопределен как перечислитель идентификатора перечисления. |
Ошибка компилятора C2931 | Class1: template-id/generic-id переопределен в качестве функции-члена класса 2 (устаревшее в Visual Studio 2022.) |
Ошибка компилятора C2932 | Type: template-id/generic-id переопределен как член данных идентификатора (устаревший в Visual Studio 2022.) |
Ошибка компилятора C2933 | Type: template-id/generic-id переопределен как элемент typedef идентификатора (устаревший в Visual Studio 2022.) |
Ошибка компилятора C2934 | "type": template-id/generic-id переопределен как вложенный "элемент" идентификатора (устаревшее в Visual Studio 2022.) |
Ошибка компилятора C2935 | Type: template-id/generic-id переопределен как глобальная функция (устаревшая в Visual Studio 2022.) |
Ошибка компилятора C2936 | Type: template-id/generic-id переопределен как глобальная переменная данных (устаревшая в Visual Studio 2022.) |
Ошибка компилятора C2937 | Type: template-id/generic-id переопределен как глобальный типд (устаревший в Visual Studio 2022.) |
Ошибка компилятора C2938 | "идентификатор": не удалось специализированный шаблон псевдонима |
Ошибка компилятора C2939 | Type: template-id/generic-id переопределен как локальная переменная данных (устаревшая в Visual Studio 2022.) |
Ошибка компилятора C2940 | "type": template-id/generic-id переопределен как локальный типд (устаревший в Visual Studio 2022.) |
Ошибка компилятора C2941 | Type: template-id/generic-id redefined в качестве локального элемента (устаревшее в Visual Studio 2022.) |
Ошибка компилятора C2942 | "type": template-id/generic-id переопределен как формальный аргумент функции (устаревшее в Visual Studio 2022.) |
Ошибка компилятора C2943 | Type: template-id/generic-id переопределен в качестве аргумента типа шаблона (устаревшее в Visual Studio 2022.) |
Ошибка компилятора C2944 | Type: template-id/generic-id redefined в качестве аргумента значения шаблона (устаревшее в Visual Studio 2022.) |
Ошибка компилятора C2945 | явное создание экземпляра не ссылается на специализацию класса-шаблона |
Ошибка компилятора C2946 | явное создание экземпляров; Тип не является специализацией класса шаблона |
Ошибка компилятора C2947 | ожидая, что аргументы> шаблона прерваны, найдено "token" |
Ошибка компилятора C2948 | явное создание экземпляров; Описатель класса хранилища "описатель" не разрешен для специализации |
Ошибка компилятора C2949 | thread_local не поддерживается в /kernel |
Ошибка компилятора C2950 | Является устаревшей. |
Ошибка компилятора C2951 | Объявления шаблона или универсального типа разрешены только в глобальной области, пространства имен или класса. |
Ошибка компилятора C2952 | "объявление": шаблон/универсальный список отсутствующих шаблонов или универсальных параметров |
Ошибка компилятора C2953 | "type": шаблон класса уже определен |
Ошибка компилятора C2954 | аргумент слова инструкции, не в диапазоне |
Ошибка компилятора C2955 | "type": использование шаблона класса/универсального типа требует списка аргументов шаблона или универсального аргумента |
Ошибка компилятора C2956 | обычная функция сделки "function" будет выбрана в качестве функции размещения сделки |
Ошибка компилятора C2957 | "token": недопустимый левый разделитель: ожидается "<" |
Ошибка компилятора C2958 | Левый разделитель, найденный в файле (line_number), не совпадал правильно. |
Ошибка компилятора C2959 | Универсальный класс или функция не может быть членом шаблона |
Ошибка компилятора C2960 | Является устаревшей. |
Ошибка компилятора C2961 | Function: несогласованные явные экземпляры, предыдущий явный экземпляр не указал аргумент. |
Ошибка компилятора C2962 | синтаксическая ошибка: "token": ожидаемое определение функции-члена класса шаблона до конца с "}" |
Ошибка компилятора C2963 | Является устаревшей. |
Ошибка компилятора C2964 | Является устаревшей. |
Ошибка компилятора C2965 | __declspec(описатель) не поддерживается с /kernel |
Ошибка компилятора C2966 | "identifier1": должен иметь ту же __declspec(code_seg(...)), что и базовый класс "identifier2" (устаревшее в Visual Studio 2022.) |
Ошибка компилятора C2967 | "идентификатор": переопределяющая виртуальная функция должна иметь ту же __declspec(code_seg(...)) как переопределенную виртуальную функцию (устаревшее в Visual Studio 2022.) |
Ошибка компилятора C2968 | 'identifier': рекурсивное объявление псевдонима |
Ошибка компилятора C2969 | синтаксическая ошибка: "token": ожидаемое определение функции-члена заканчивается "}" |
Ошибка компилятора C2970 | "type": параметр шаблона "parameter": "argument": выражение, связанное с объектами с внутренней компоновкой, не может использоваться в качестве аргумента, отличного от типа |
Ошибка компилятора C2971 | "type": параметр шаблона "parameter": "argument": переменная с длительностью нестаттического хранилища не может использоваться в качестве аргумента, отличного от типа |
Ошибка компилятора C2972 | "type": параметр шаблона "параметр": недопустимый тип аргумента, отличного от типа |
Ошибка компилятора C2973 | "template": недопустимый аргумент шаблона "number" |
Ошибка компилятора C2974 | "type": недопустимый аргумент шаблона или универсального аргумента для параметра, ожидаемый тип |
Ошибка компилятора C2975 | Type: недопустимый аргумент шаблона для параметра, ожидаемое выражение константы во время компиляции |
Ошибка компилятора C2976 | Type: слишком мало шаблонов и универсальных аргументов |
Ошибка компилятора C2977 | Type: слишком много аргументов шаблона или универсального аргумента |
Ошибка компилятора C2978 | синтаксическая ошибка: ожидаемый "keyword1" или "keyword2"; найденный тип "type"; параметры, не являющиеся типом, не поддерживаются в универсальных наборах |
Ошибка компилятора C2979 | явные специализации не поддерживаются в универсальных шаблонах |
Ошибка компилятора C2980 | Обработка исключений C++ не поддерживается в /kernel |
Ошибка компилятора C2981 | Динамическая форма ключевого слова не поддерживается с /kernel |
Ошибка компилятора C2982 | "объявление": разные __declspec(code_seg(...)) используется: "identifier1" теперь "identifier2" |
Ошибка компилятора C2983 | "объявление": все объявления должны иметь идентичные __declspec(code_seg(...)) |
Ошибка компилятора C2984 | Является устаревшей. |
Ошибка компилятора C2985 | "argument": аргумент для __declspec(code_seg(...)) должен быть текстовым разделом |
Ошибка компилятора C2986 | "идентификатор": __declspec(code_seg(...)) можно применять только к классу или функции. |
Ошибка компилятора C2987 | Объявление не может содержать как __declspec(code_seg('identifier')), так и __declspec(code_seg('value')) |
Ошибка компилятора C2988 | объявление и определение шаблона неузнаваемого шаблона |
Ошибка компилятора C2989 | "class": шаблон или универсальный класс уже объявлен как неклассовый шаблон/универсальный |
Ошибка компилятора C2990 | "class": шаблон или универсальный шаблон неклассов уже объявлен как шаблон класса или универсальный |
Ошибка компилятора C2991 | переопределение шаблона или универсального параметра "параметр" |
Ошибка компилятора C2992 | Class: недопустимый или отсутствующий список параметров шаблона или универсального параметра |
Ошибка компилятора C2993 | "type": недопустимый тип для параметра шаблона не типа "идентификатор" |
Ошибка компилятора C2994 | неименованный класс в списке параметров шаблона |
Ошибка компилятора C2995 | "объявление": шаблон функции уже определен |
Ошибка компилятора C2996 | "function": определение шаблона рекурсивной функции |
Ошибка компилятора C2997 | Function: привязка массива не может быть выведена из инициализатора элементов по умолчанию |
Ошибка компилятора C2998 | "декларатор": не может быть определением шаблона |
См. также
Компилятор C/C++ и средства сборки ошибок и предупреждений
Ошибки компилятора C2000 — C3999, C7000 — C7999