Заметка
Доступ к этой странице требует авторизации. Вы можете попробовать войти в систему или изменить каталог.
Доступ к этой странице требует авторизации. Вы можете попробовать сменить директорию.
В статьях в этом разделе документации объясняется подмножество сообщений об ошибках, создаваемых компилятором.
Внимание
Компиляторы и средства сборки Visual Studio могут сообщать о многих типах ошибок и предупреждений. После обнаружения ошибки или предупреждения средства сборки могут делать предположения о намерении кода и пытаться продолжить работу, чтобы в одно и то же время сообщалось больше проблем. Если средства делают неверное предположение, последующие ошибки или предупреждения не могут применяться к проекту. При устранении проблем в проекте всегда начинайте с первой зарегистрированной ошибки (или предупреждения) и выполняйте повторную сборку как можно чаще. Одно исправление может устранить несколько последующих ошибок.
Чтобы получить справку по определенному диагностическом сообщению в Visual Studio, выберите его в окне вывода и нажмите клавишу F1 . Visual Studio открывает страницу документации для этой ошибки, если она существует. Вы также можете использовать средство поиска в верхней части страницы, чтобы найти статьи об определенных ошибках или предупреждениях. Или просмотрите список ошибок и предупреждений по инструменту и типу в оглавлении на этой странице.
Примечание.
Не все ошибки или предупреждения Visual Studio документируются. Во многих случаях диагностическое сообщение предоставляет все доступные сведения. Если вы приземлились на этой странице и думаете, что сообщение об ошибке или предупреждении требует дополнительного объяснения, сообщите нам, используя кнопки обратной связи на этой странице. Если вы считаете, что ошибка или предупреждение неправильно, или вы нашли другую проблему с набором инструментов, сообщите о проблеме продукта на сайте Сообщество разработчиков. Вы также можете отправлять отзывы и вводить ошибки в интегрированной среде разработки. В Visual Studio перейдите в строку меню и выберите Справка > Отправить отзыв > Сообщить о проблемеили отправить предложение с помощью Справка > Отправить отзыв > Предложить функцию. Некоторые разделы об ошибках компилятора были созданы, которые не создаются компилятором и теперь перенаправляются на эту страницу.
Вы можете найти дополнительную помощь по ошибкам и предупреждениям на форумах Microsoft Q&A C++. Или найдите номер ошибки или предупреждения на сайте Сообщество разработчиков Visual Studio C++. Вы также можете поискать решения на Stack Overflow.
Ссылки на дополнительные справочные материалы и ресурсы сообщества см. в разделе справки и сообщества Visual C++.
Сообщения об ошибках
| Ошибка | Сообщение |
|---|---|
| Ошибка компилятора C2600 | 'function': нельзя определить особую функцию-член, созданную компилятором (сначала необходимо объявить в классе). |
| Ошибка компилятора C2601 | "function": определения локальных функций являются незаконными |
| Ошибка компилятора C2602 | "class::identifier" не является членом базового класса класса "class" |
| Ошибка компилятора C2603 | "function": слишком много статических объектов с конструкторами или деструкторами в блоке функции |
| Ошибка компилятора C2604 | "идентификатор": не удается реализовать несколько методов интерфейса |
| Ошибка компилятора C2605 | "идентификатор": этот метод зарезервирован в управляемом или winRT-классе |
| Ошибка компилятора C2606 | "class1": не может повторно реализовать "member", так как он наследуется от базы среды выполнения "class2" |
| Ошибка компилятора C2607 | Сбой статического утверждения |
| Ошибка компилятора C2608 | Недопустимый токен 'токен' в списке параметров макроса |
| Ошибка компилятора C2609 | отсутствует ")" в списке параметров макроса |
| Ошибка компилятора C2610 | "class::member": не является специальной функцией-членом, которая может быть включена по умолчанию |
| Ошибка компилятора C2611 | "token": недопустимо после '~' (ожидается идентификатор) |
| Ошибка компилятора C2612 | недопустимый завершающий символ 'character' в списке инициализатора базового или члена |
| Ошибка компилятора C2613 | недопустимый завершающий символ 'character' в списке базовых классов |
| Ошибка компилятора C2614 | 'class': недопустимая инициализация члена: 'идентификатор' не является базовым классом или членом |
| Ошибка компилятора C2615 | 'offsetof' невозможно применить к типу, отличному от класса 'типа' |
| Ошибка компилятора C2616 | "conversion": нельзя неявно преобразовать не-lvalue "type1" в "тип2", который не является константой. |
| Ошибка компилятора C2617 | function: несогласованный оператор возврата |
| Ошибка компилятора C2618 | недопустимое обозначение элемента в offsetof |
| Ошибка компилятора C2619 | "идентификатор": статический член данных не разрешен в анонимной структуре или союзе |
| Ошибка компилятора C2620 | Является устаревшей. |
| Ошибка компилятора C2621 | Является устаревшей. |
| Ошибка компилятора C2622 | Является устаревшей. |
| Ошибка компилятора C2623 | Является устаревшей. |
| Ошибка компилятора C2624 | scope::type: локальные классы нельзя использовать для объявления переменных 'extern'. |
| Ошибка компилятора C2625 | "идентификатор": недопустимый член объединения; тип "тип" является ссылочным типом |
| Ошибка компилятора C2626 | "идентификатор": частный или защищённый член данных не допускается в анонимной структуре или объединении. |
| Ошибка компилятора C2627 | function: функция-член не разрешена в анонимном объединении |
| Ошибка компилятора C2628 | "type1", за которым следует "type2" является незаконным (вы забыли ";"?) |
| Ошибка компилятора C2629 | "идентификатор": анонимная структура или объединение не может объявить вложенный тип |
| Ошибка компилятора C2630 | Символ, найденный в списке, разделенном запятыми |
| Ошибка компилятора C2631 | "идентификатор": класс или перечисление нельзя определить в шаблоне псевдонима |
| Ошибка компилятора C2632 | Тип1, за которым следует тип2, является незаконным |
| Ошибка компилятора C2633 | "identifier": "inline" является единственным допустимым классом хранения для конструкторов |
| Ошибка компилятора C2634 | "class::member": указатель на член-ссылку недопустим |
| Ошибка компилятора C2635 | невозможно преобразовать 'тип1*' в 'тип2*'; подразумевается преобразование из виртуального базового класса |
| Ошибка компилятора C2636 | "идентификатор": указатель на элемент является недопустимым |
| Ошибка компилятора C2637 | "идентификатор": не удается изменить указатели на элементы данных |
| Ошибка компилятора C2638 | "identifier": модификатор __based недопустим для указателя на члена |
| Ошибка компилятора C2639 | Конечный тип возвращаемого типа "тип" руководства по вычету должен быть специализацией шаблона класса' |
| Ошибка компилятора C2640 | "абстрактный декларатор": модификатор __based недопустим для ссылки |
| Ошибка компилятора C2641 | Не удается вывести аргументы для шаблона 'имя шаблона' |
| Ошибка компилятора C2642 | Два объявления руководства по вычету для одного шаблона класса не могут иметь эквивалентный список параметров и головку шаблона |
| Ошибка компилятора C2643 | Руководство по вычету должно быть объявлено в той же области, что и соответствующий шаблон классаимени шаблона' |
| Ошибка компилятора C2644 | Руководство по дедукции должно иметь тот же доступ, что и соответствующий шаблон класса под названием. |
| Ошибка компилятора C2645 | нет подходящего имени для указателя на член (найдено ':: *') |
| Ошибка компилятора C2646 | Анонимная структура или объединение на уровне глобального пространства или пространства имен должны быть объявлены статическими. |
| Ошибка компилятора C2647 | Оператор: невозможно разыменовать 'тип1' на 'тип2'. |
| Ошибка компилятора C2648 | "идентификатор": использование элемента в качестве параметра по умолчанию требует статического члена |
| Ошибка компилятора C2649 | "идентификатор": не является "классом/структурой/объединением" |
| Ошибка компилятора C2650 | Оператор: не может быть виртуальной функцией |
| Ошибка компилятора C2651 | Тип: слева от "::" должен быть классом, структурой или объединением |
| Ошибка компилятора C2652 | Идентификатор: недопустимый конструктор копирования: первый параметр не должен быть типом. |
| Ошибка компилятора C2653 | "идентификатор": не является именем класса или пространства имен |
| Ошибка компилятора C2654 | "идентификатор": попытка доступа к члену за пределами функции-члена |
| Ошибка компилятора C2655 | "идентификатор": определение или повторное объявление незаконны в текущей области |
| Ошибка компилятора C2656 | "function": функция не разрешена как битовое поле |
| Ошибка компилятора C2657 | class::*, найден в начале оператора (вы забыли указать тип?) |
| Ошибка компилятора C2658 | "идентификатор": переопределение в анонимной структуре или объединении |
| Ошибка компилятора C2659 | оператор: использование как левого операнда |
| Ошибка компилятора C2660 | Function: функция не принимает аргументы числа |
| Ошибка компилятора C2661 | "function": ни одна перегруженная функция не принимает такое количество аргументов. |
| Ошибка компилятора C2662 | "function": невозможно преобразовать указатель "this" из типа "type1" в тип "type2" |
| Ошибка компилятора C2663 | 'функция': перегруженная функция не имеет допустимого преобразования для указателяthis' |
| Ошибка компилятора C2664 | 'function': не удается преобразовать аргумент number из 'type1' в 'type2' |
| Ошибка компилятора C2665 | 'функция': перегруженная функция не может преобразовать все типы аргументов |
| Ошибка компилятора C2666 | 'функция': перегруженные функции имеют аналогичные преобразования |
| Ошибка компилятора C2667 | 'функция': перегруженная функция не имеет оптимального преобразования |
| Ошибка компилятора C2668 | "function": неоднозначный вызов перегруженной функции |
| Ошибка компилятора C2669 | Функция-член не разрешена в анонимном объединении |
| Ошибка компилятора C2670 | "function": шаблон функции не может преобразовать номер параметраиз типа "type" |
| Ошибка компилятора C2671 | "function": статические функции-члены не имеют указателей "this" |
| Ошибка компилятора C2672 | "function": не найдена соответствующая перегруженная функция |
| Ошибка компилятора C2673 | "function": глобальные функции не имеют указателей "this" |
| Ошибка компилятора C2674 | Универсальное объявление не допускается в этом контексте |
| Ошибка компилятора C2675 | унарный оператор: тип не определяет этот оператор или преобразование в тип, подходящий для предопределенного оператора. |
| Ошибка компилятора C2676 | binary 'operator': 'type' не определяет этот оператор или преобразование в тип, который приемлем для предопределенного оператора. |
| Ошибка компилятора C2677 | binary 'operator': глобальный оператор не найден, который принимает тип 'type' (или нет допустимого преобразования). |
| Ошибка компилятора C2678 | binary 'operator': не найден оператор, который принимает левый операнд типа "type" (или нет допустимого преобразования). |
| Ошибка компилятора C2679 | binary 'operator': не найден оператор, который принимает правый операнд типа "тип" (или нет допустимого преобразования) |
| Ошибка компилятора C2680 | type: неправильный целевой тип для приведения |
| Ошибка компилятора C2681 | "type": недопустимый тип выражения для каста |
| Ошибка компилятора C2682 | нельзя использовать 'приведение типов' для преобразования из 'type1' в 'type2' |
| Ошибка компилятора C2683 | "cast": "type" не является полиморфным типом |
| Ошибка компилятора C2684 | "декларатор": удаленные и стандартные функции не поддерживаются в классах Managed/WinRT |
| Ошибка компилятора C2685 | "декларатор": удаленные и стандартные функции не поддерживаются явными описателями ограничений |
| Ошибка компилятора C2686 | не может перегружать статические и нестатические функции-члены с теми же типами параметров |
| Ошибка компилятора C2687 | "type": объявление исключения не может быть "void" или обозначать неполный тип, или быть указателем или ссылкой на неполный тип. |
| Ошибка компилятора C2688 | Type::member: Ковариантные возвращаемые значения при множественном или виртуальном наследовании не поддерживаются для функций с переменным числом аргументов (varargs). |
| Ошибка компилятора C2689 | "function": дружественная функция не может быть определена в локальном классе |
| Ошибка компилятора C2690 | Оператор: не удается выполнить арифметику указателя на управляемый массив WinRT. |
| Ошибка компилятора C2691 | "type": управляемый или WinRT массив не может иметь этот тип элемента |
| Ошибка компилятора C2692 | "function": полностью прототипированные функции, необходимые в компиляторе C с параметром "/clr" |
| Ошибка компилятора C2693 | Оператор: незаконное сравнение ссылок на управляемый или WinRT массив |
| Ошибка компилятора C2694 | "override_function": переопределение виртуальной функции имеет менее ограничивающую спецификацию исключений, чем функция виртуального члена базового класса "base_function". |
| Ошибка компилятора C2695 | "override_function": переопределение виртуальной функции отличается от "base_function" только по соглашению о вызовах |
| Ошибка компилятора C2696 | Не удается создать временный объект типа managed/WinRT type 'type'. |
| Ошибка компилятора C2697 | Является устаревшей. |
| Ошибка компилятора C2698 | Использование объявления 'using' для declaration1 не может существовать параллельно с существующим объявлением 'using' для declaration2 |
См. также
Компилятор C/C++ и средства сборки ошибок и предупреждений
Ошибки компилятора C2000 — C3999, C7000 — C7999