Ошибки компилятора с C2800 по C2899
В статьях в этом разделе документации объясняется подмножество сообщений об ошибках, создаваемых компилятором.
Внимание
Компиляторы и средства сборки Visual Studio могут сообщать о многих типах ошибок и предупреждений. После обнаружения ошибки или предупреждения средства сборки могут делать предположения о намерении кода и пытаться продолжить работу, чтобы в одно и то же время сообщалось больше проблем. Если средства делают неверное предположение, последующие ошибки или предупреждения не могут применяться к проекту. При устранении проблем в проекте всегда начинайте с первой зарегистрированной ошибки (или предупреждения) и выполняйте повторную сборку как можно чаще. Одно исправление может привести к возникновению многих последующих ошибок.
Чтобы получить справку по определенному диагностическом сообщению в Visual Studio, выберите его в окне вывода и нажмите клавишу F1 . Visual Studio открывает страницу документации для этой ошибки, если она существует. Вы также можете использовать средство поиска в верхней части страницы, чтобы найти статьи об определенных ошибках или предупреждениях. Или просмотрите список ошибок и предупреждений по инструменту и введите оглавление на этой странице.
Примечание.
Не все ошибки или предупреждения Visual Studio документируются. Во многих случаях диагностическое сообщение предоставляет все доступные сведения. Если вы приземлились на этой странице при использовании F1 , и вы думаете, что сообщение об ошибке или предупреждении требует дополнительного объяснения, сообщите нам об этом. Вы можете использовать кнопки обратной связи на этой странице, чтобы вызвать проблему документации на GitHub. Если вы считаете, что ошибка или предупреждение неправильно, или вы нашли другую проблему с набором инструментов, сообщите о проблеме продукта на сайте Сообщество разработчиков. Вы также можете отправлять отзывы и вводить ошибки в интегрированной среде разработки. В Visual Studio перейдите в строку меню и выберите "Отправить отзыв о > проблеме" или отправьте предложение с помощью справки > по отправке > отзывов > отправить предложение. Некоторые разделы об ошибках компилятора были созданы, которые не создаются компилятором и теперь перенаправляются на эту страницу.
Вы можете найти дополнительную помощь по ошибкам и предупреждениям на форумах Microsoft Learn Q&A . Или найдите номер ошибки или предупреждения на сайте Сообщество разработчиков Visual Studio C++. Вы также можете искать решения в стеке Overflow .
Ссылки на дополнительные справочные материалы и ресурсы сообщества см. в разделе справки и сообщества Visual C++.
Сообщения об ошибках
Ошибка | Сообщение |
---|---|
Ошибка компилятора C2800 | Оператор оператора не может быть перегружен |
Ошибка компилятора C2801 | "member" должен быть нестатичным элементом |
Ошибка компилятора C2802 | Статический член "оператор оператора" не имеет формальных параметров |
Ошибка компилятора C2803 | Оператор оператора должен иметь по крайней мере один формальный параметр типа класса |
Ошибка компилятора C2804 | В двоичном операторе оператора слишком много параметров |
Ошибка компилятора C2805 | Двоичный оператор оператора имеет слишком мало параметров |
Ошибка компилятора C2806 | Оператор оператора имеет слишком много формальных параметров |
Ошибка компилятора C2807 | второй формальный параметр для постфикса оператора должен быть int |
Ошибка компилятора C2808 | Унарный оператор оператора имеет слишком много формальных параметров |
Ошибка компилятора C2809 | Оператор оператора не имеет формальных параметров |
Ошибка компилятора C2810 | Interface: интерфейс может наследоваться только от другого интерфейса. |
Ошибка компилятора C2811 | Type1: не удается наследовать от type2, класс ссылок может наследоваться только от класса ссылок или класса интерфейса. |
Ошибка компилятора C2812 | #import не поддерживается с /clr:pure и /clr:safe |
Ошибка компилятора C2813 | директива #import не поддерживается с параметром /MP |
Ошибка компилятора C2814 | "member": собственный тип не может быть вложен в управляемый или winRT-тип "class" |
Ошибка компилятора C2815 | Оператор delete: первый формальный параметр должен иметь значение void *, но использовался тип |
Ошибка компилятора C2816 | Вызов макроса, например функции "идентификатор", отсутствует завершающийся ")" |
Ошибка компилятора C2817 | Тип возвращаемого значения для оператора delete должен быть "void" |
Ошибка компилятора C2818 | применение перегруженного оператора ->— рекурсивно через тип "class" |
Ошибка компилятора C2819 | Тип "class" не имеет перегруженного члена "оператор ->" |
Ошибка компилятора C2820 | Является устаревшей. |
Ошибка компилятора C2821 | первый формальный параметр для оператора new должен иметь значение "size_t" |
Ошибка компилятора C2822 | локальная очистка не поддерживается на этой платформе |
Ошибка компилятора C2823 | Шаблон типа или универсальный является незаконным |
Ошибка компилятора C2824 | Тип возвращаемого значения для оператора new должен иметь значение void *. |
Ошибка компилятора C2825 | "идентификатор": должен быть классом или пространством имен, за которым следует "::" |
Ошибка компилятора C2826 | Является устаревшей. |
Ошибка компилятора C2827 | Оператор оператора не может быть глобально переопределен с унарной формой |
Ошибка компилятора C2828 | Оператор оператора не может быть глобально переопределен с двоичной формой |
Ошибка компилятора C2829 | Оператор оператора не может иметь список параметров переменной |
Ошибка компилятора C2830 | Только параметры размещения для оператора new могут иметь значения по умолчанию |
Ошибка компилятора C2831 | Оператор оператора не может иметь параметры по умолчанию |
Ошибка компилятора C2832 | "идентификатор": ссылочный тип не может быть инициализирован со значением |
Ошибка компилятора C2833 | "маркер оператора" не является распознаваемым оператором или типом |
Ошибка компилятора C2834 | Оператор оператора должен быть глобально квалифицирован (устаревший в Visual Studio 2022.) |
Ошибка компилятора C2835 | Определяемое пользователем преобразование type не принимает формальных параметров |
Ошибка компилятора C2836 | "идентификатор": только один нестатический член данных объединения может иметь инициализатор элементов по умолчанию |
Ошибка компилятора C2837 | Function: не удается использовать директивы OpenMP и цикл #pragma (hint_parallel) в той же функции. |
Ошибка компилятора C2838 | "идентификатор": незаконное полное имя в объявлении члена |
Ошибка компилятора C2839 | Недопустимый тип возвращаемого типа "type" для перегруженного оператора ->" |
Ошибка компилятора C2840 | аргумент слова инструкции не констант |
Ошибка компилятора C2841 | регистр не констант |
Ошибка компилятора C2842 | "class": тип managed/WinRT может не определять собственный "оператор new" или "operator delete" |
Ошибка компилятора C2843 | "member": не может принимать адрес нестатических элементов данных или метода управляемого или winRT типа |
Ошибка компилятора C2844 | "идентификатор": не может быть членом интерфейса "interface" |
Ошибка компилятора C2845 | "type": арифметический указатель не разрешен для этого типа |
Ошибка компилятора C2846 | "interface": интерфейс не может иметь конструктор |
Ошибка компилятора C2847 | Не удается применить sizeof к типу Managed/WinRT "class" |
Ошибка компилятора C2848 | "class": тип managed/WinRT не может быть членом объединения |
Ошибка компилятора C2849 | "interface": интерфейс не может иметь деструктор |
Ошибка компилятора C2850 | "конструктор": разрешено только в области файла; может не находиться в вложенной конструкции. |
Ошибка компилятора C2851 | Перечисление "перечисление": общедоступная перечисление WinRT может использовать только int или unsigned int в качестве базового типа |
Ошибка компилятора C2852 | "идентификатор": только члены данных можно инициализировать в классе |
Ошибка компилятора C2853 | "идентификатор": нестатический член данных не может иметь тип, содержащий "auto" |
Ошибка компилятора C2854 | ошибка синтаксиса в #pragma hdrstop |
Ошибка компилятора C2855 | Параметр командной строки "option" не согласуется с предварительно скомпилированным заголовком |
Ошибка компилятора C2856 | #pragma hdrstop не может находиться внутри блока #if |
Ошибка компилятора C2857 | Инструкция "#include", указанная параметром командной строки /Yc, не найдена в исходном файле. |
Ошибка компилятора C2858 | параметр командной строки "/Yc (/Fd filename)" несовместим с предварительно скомпилированным заголовком, который использовал имя файла /Fd(устаревшее в Visual Studio 2022.) |
Ошибка компилятора C2859 | Имя файла не является файлом типа файла, который использовался при создании этого предварительно скомпилированного заголовка, повторно создайте предварительно скомпилированные заголовки. |
Ошибка компилятора C2860 | "void" нельзя использовать в качестве параметра функции, за исключением "(void)" |
Ошибка компилятора C2861 | "объявление": не удается определить функцию-член интерфейса |
Ошибка компилятора C2862 | "interface": интерфейс может иметь только общедоступные члены |
Ошибка компилятора C2863 | "interface": интерфейс не может иметь друзей |
Ошибка компилятора C2864 | "идентификатор": переменная статического элемента данных или шаблона с инициализатором в классе должна иметь неизменяемый целочисленный тип конста |
Ошибка компилятора C2865 | Оператор: незаконное сравнение указателя объекта или дескриптора |
Ошибка компилятора C2866 | Является устаревшей. |
Ошибка компилятора C2867 | "идентификатор": не является пространством имен |
Ошибка компилятора C2868 | "идентификатор": недопустимый синтаксис для using-declaration; ожидаемое полное имя |
Ошибка компилятора C2869 | "идентификатор": уже определен как пространство имен |
Ошибка компилятора C2870 | "идентификатор": определение пространства имен должно отображаться в области файла или непосредственно в другом определении пространства имен |
Ошибка компилятора C2871 | "идентификатор": пространство имен с этим именем не существует |
Ошибка компилятора C2872 | "идентификатор": неоднозначный символ |
Ошибка компилятора C2873 | "symbol": символ нельзя использовать в объявлении using |
Ошибка компилятора C2874 | использование объявления вызывает несколько объявлений идентификатора. |
Ошибка компилятора C2875 | using-declaration вызывает несколько объявлений class::identifier (устаревшее в Visual Studio 2022.) |
Ошибка компилятора C2876 | "class::member": не все перегрузки доступны |
Ошибка компилятора C2877 | "member" недоступен из класса |
Ошибка компилятора C2878 | "идентификатор": пространство имен или класс этого имени не существует |
Ошибка компилятора C2879 | "идентификатор": только существующее пространство имен может быть присвоено альтернативное имя определением псевдонима пространства имен. |
Ошибка компилятора C2880 | __swi или __hvc требует допустимой константы в качестве первого аргумента (номер SWI) |
Ошибка компилятора C2881 | "идентификатор": уже используется в качестве псевдонима для класса. |
Ошибка компилятора C2882 | "идентификатор": незаконное использование идентификатора пространства имен в выражении |
Ошибка компилятора C2883 | Function: объявление функции конфликтует с идентификатором, представленным с помощью объявления using |
Ошибка компилятора C2884 | "идентификатор": вводимый с использованием объявления конфликтует с локальной функцией "function" |
Ошибка компилятора C2885 | "class::identifier": недопустимое объявление using в области, отличной от класса |
Ошибка компилятора C2886 | "class::identifier": символ не может использоваться в элементе using-declaration |
Ошибка компилятора C2887 | __swi или __hvc не может содержать более пяти аргументов (номер SWI, r0 - r3) |
Ошибка компилятора C2888 | "идентификатор": символ не может быть определен в пространстве имен "пространство имен" |
Ошибка компилятора C2889 | "class": тип класса Managed/WinRT не может быть виртуальным базовым классом |
Ошибка компилятора C2890 | "class": класс ссылок может иметь только один базовый класс, отличный от интерфейса |
Ошибка компилятора C2891 | "parameter": не удается принять адрес параметра шаблона |
Ошибка компилятора C2892 | Локальный класс не должен иметь шаблоны элементов |
Ошибка компилятора C2893 | Не удалось специализировать шаблон функции "template" |
Ошибка компилятора C2894 | шаблоны не могут быть объявлены для связывания "C" |
Ошибка компилятора C2895 | "объявление": не удается явно создать экземпляр шаблона функции, объявленного с помощью dllimport |
Ошибка компилятора C2896 | Function1: не удается использовать шаблон функции или универсальный аргумент function2 в качестве аргумента функции (устаревшее в Visual Studio 2022.) |
Ошибка компилятора C2897 | Деструктор или метод завершения не может быть шаблоном функции |
Ошибка компилятора C2898 | Объявление: шаблоны функций-членов не могут быть виртуальными |
Ошибка компилятора C2899 | Является устаревшей. |
См. также
Компилятор C/C++ и средства сборки ошибок и предупреждений
Ошибки компилятора C2000 — C3999, C7000 — C7999