Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В статьях в этом разделе документации объясняется подмножество сообщений об ошибках, создаваемых компилятором.
Внимание
Компиляторы и средства сборки Visual Studio могут сообщать о многих типах ошибок и предупреждений. После обнаружения ошибки или предупреждения средства сборки могут делать предположения о намерении кода и пытаться продолжить работу, чтобы в одно и то же время сообщалось больше проблем. Если средства делают неверное предположение, последующие ошибки или предупреждения не могут применяться к проекту. При устранении проблем в проекте всегда начинайте с первой зарегистрированной ошибки (или предупреждения) и выполняйте повторную сборку как можно чаще. Одно исправление может привести к возникновению многих последующих ошибок.
Чтобы получить справку по определенному диагностическом сообщению в Visual Studio, выберите его в окне вывода и нажмите клавишу F1 . Visual Studio открывает страницу документации для этой ошибки, если она существует. Вы также можете использовать средство поиска в верхней части страницы, чтобы найти статьи об определенных ошибках или предупреждениях. Или просмотрите список ошибок и предупреждений по инструменту и введите оглавление на этой странице.
Примечание.
Не все ошибки или предупреждения Visual Studio документируются. Во многих случаях диагностическое сообщение предоставляет все доступные сведения. Если вы приземлились на этой странице при использовании F1 , и вы думаете, что сообщение об ошибке или предупреждении требует дополнительного объяснения, сообщите нам об этом. Вы можете использовать кнопки обратной связи на этой странице, чтобы вызвать проблему документации на GitHub. Если вы считаете, что ошибка или предупреждение неправильно, или вы нашли другую проблему с набором инструментов, сообщите о проблеме продукта на сайте Сообщество разработчиков. Вы также можете отправлять отзывы и вводить ошибки в интегрированной среде разработки. В Visual Studio перейдите в строку меню и выберите "Отправить отзыв о > проблеме" или отправьте предложение с помощью справки > по отправке > отзывов > отправить предложение. Некоторые разделы об ошибках компилятора были созданы, которые не создаются компилятором и теперь перенаправляются на эту страницу.
Вы можете найти дополнительную помощь по ошибкам и предупреждениям на форумах Microsoft Learn Q&A . Или найдите номер ошибки или предупреждения на сайте Сообщество разработчиков Visual Studio C++. Вы также можете искать решения в стеке Overflow .
Ссылки на дополнительные справочные материалы и ресурсы сообщества см. в разделе справки и сообщества Visual C++.
Сообщения об ошибках
Ошибка | Сообщение |
---|---|
Ошибка компилятора C3000 | Символ: для использования шаблона класса требуется список аргументов шаблона. Вычет аргументов не допускается в нестатическом элементе данных. |
Ошибка компилятора C3001 | Message: ожидается имя директивы OpenMP |
Ошибка компилятора C3002 | "name1 name2": несколько имен директив OpenMP |
Ошибка компилятора C3003 | "директива": имя директивы OpenMP не разрешено после предложений директив |
Ошибка компилятора C3004 | "предложение": предложение недопустимо в директиве OpenMP "директива" |
Ошибка компилятора C3005 | Message: непредвиденная токена, обнаруженная в директиве OpenMP "директива" |
Ошибка компилятора C3006 | Предложение "предложение": предложение в директиве OpenMP "директива" отсутствует ожидаемый аргумент |
Ошибка компилятора C3007 | "предложение": предложение в директиве OpenMP "директива" не принимает аргумент |
Ошибка компилятора C3008 | "argument": аргумент отсутствует закрывающий ")" в директиве OpenMP "директива" |
Ошибка компилятора C3009 | "label": переход в структурированный блок OpenMP запрещен |
Ошибка компилятора C3010 | "label": выскочить из структурированного блока OpenMP запрещено |
Ошибка компилятора C3011 | не допускается встроенный код на языке ассемблера непосредственно внутри параллельной области |
Ошибка компилятора C3012 | "function": встроенная функция не допускается непосредственно в параллельном регионе |
Ошибка компилятора C3013 | Предложение "предложение": предложение может отображаться только один раз в директиве OpenMP "директива" |
Ошибка компилятора C3014 | Ожидается цикл для цикла после директивы OpenMP "директива" |
Ошибка компилятора C3015 | неверный вид инициализации в операторе For директивы OpenMP |
Ошибка компилятора C3016 | "идентификатор": переменная индекса в инструкции OpenMP "for" должна иметь подписанный целочисленный тип |
Ошибка компилятора C3017 | неверный вид проверки завершения в операторе For директивы OpenMP |
Ошибка компилятора C3018 | "идентификатор": тест openMP "for" или добавочный элемент должны использовать переменную индекса "переменная" |
Ошибка компилятора C3019 | Приращение в инструкции OpenMP for имеет неправильный вид |
Ошибка компилятора C3020 | "переменная": переменная индекса цикла OpenMP "for" не может быть изменена в тексте цикла |
Ошибка компилятора C3021 | "argument": аргумент пуст в директиве OpenMP "директива" |
Ошибка компилятора C3022 | "директива": недопустимый тип расписания "директива" в директиве OpenMP "директива" |
Ошибка компилятора C3023 | "argument": непредвиденный маркер, встречаемый в аргументе с предложением OpenMP "директива" |
Ошибка компилятора C3024 | "schedule(runtime)": выражение chunk_size не допускается |
Ошибка компилятора C3025 | Предложение: ожидаемое целочисленное выражение |
Ошибка компилятора C3026 | "предложение": константное выражение должно быть положительным |
Ошибка компилятора C3027 | Предложение: ожидаемое арифметическое или указательное выражение |
Ошибка компилятора C3028 | Member: в предложении общего доступа к данным можно использовать только переменную или статический элемент данных. |
Ошибка компилятора C3029 | Символ: может отображаться только один раз в предложениях общего доступа к данным в директиве OpenMP |
Ошибка компилятора C3030 | "идентификатор": переменная в предложении или директиве "директива" не может иметь ссылочный тип |
Ошибка компилятора C3031 | "идентификатор": переменная в предложении "reduction" должна иметь скалярный арифметический тип |
Ошибка компилятора C3032 | "идентификатор": переменная в предложении "предложение" не может иметь неполный тип "type" |
Ошибка компилятора C3033 | "идентификатор": переменная в предложении "предложение" не может иметь констант-квалифицированный тип |
Ошибка компилятора C3034 | Директива OpenMP "директива" не может быть непосредственно вложена в директиву "директива" |
Ошибка компилятора C3035 | Директива OpenMP "ordered" должна быть непосредственно привязана к директиве "for" или "parallel for" предложением "ordered" |
Ошибка компилятора C3036 | "предложение": недопустимый маркер оператора в предложении OpenMP "reduction" |
Ошибка компилятора C3037 | "идентификатор": переменная в предложении "предложение" должна быть предоставлена совместно в заключенном контексте. |
Ошибка компилятора C3038 | "идентификатор": переменная в предложении private не может быть переменной сокращения в заключенном контексте |
Ошибка компилятора C3039 | "идентификатор": переменная индекса в инструкции OpenMP "for" не может быть переменной сокращения |
Ошибка компилятора C3040 | "идентификатор": тип переменной в предложении "сокращение" несовместим с оператором сокращения "оператор" |
Ошибка компилятора C3041 | "идентификатор": переменная в предложении copyprivate должна быть закрытой в заключенном контексте |
Ошибка компилятора C3042 | Предложения copyprivate и nowait не могут отображаться вместе в директиве OpenMP "директива" |
Ошибка компилятора C3043 | Директиву OpenMP "critical" нельзя вложить в директиву critical с тем же именем |
Ошибка компилятора C3044 | Section: разрешено только вложенное непосредственно в директиву OpenMP "sections" |
Ошибка компилятора C3045 | Ожидается составной оператор, следующий за директивой OpenMP "sections". Отсутствует "{" |
Ошибка компилятора C3046 | Отсутствует структурированный блок в области OpenMP "#pragma omp sections" |
Ошибка компилятора C3047 | Структурированный блок в регионе OpenMP "sections" должен предшествовать разделу "#pragma omp" (устаревшее в Visual Studio 2022.) |
Ошибка компилятора C3048 | Неверный вид выражения, следующего за #pragma omp atomic |
Ошибка компилятора C3049 | "argument": недопустимый аргумент в предложении OpenMP "default" |
Ошибка компилятора C3050 | "class": класс ссылок не может наследоваться от "идентификатора" |
Ошибка компилятора C3051 | Является устаревшей. |
Ошибка компилятора C3052 | "идентификатор": переменная не отображается в предложении общего доступа к данным в предложении default(none) |
Ошибка компилятора C3053 | "идентификатор": "threadprivate" действителен только для глобальных или статических элементов данных |
Ошибка компилятора C3054 | "#pragma параллель omp" в настоящее время не поддерживается в универсальном классе или функции (устаревшее в Visual Studio 2022.) |
Ошибка компилятора C3055 | "идентификатор": символ нельзя ссылаться перед использованием в директиве Threadprivate |
Ошибка компилятора C3056 | "идентификатор": символ не находится в той же области с директивой Threadprivate |
Ошибка компилятора C3057 | "идентификатор": динамическая инициализация символов threadprivate в настоящее время не поддерживается |
Ошибка компилятора C3058 | "идентификатор": символ, не объявленный как threadprivate, прежде чем он будет использоваться в предложении copyin |
Ошибка компилятора C3059 | "identifier": символ threadprivate нельзя использовать в предложении "предложение" |
Ошибка компилятора C3060 | "идентификатор": другая функция может не быть определена внутри класса с помощью квалифицированного имени (она может быть объявлена только). |
Ошибка компилятора C3061 | оператор "operator": не разрешено для перечисления "type" с базовым типом "type" |
Ошибка компилятора C3062 | "идентификатор": перечислитель требует значения, так как базовый тип имеет тип" |
Ошибка компилятора C3063 | оператор "operator": все операнды должны иметь один и тот же тип перечисления |
Ошибка компилятора C3064 | "идентификатор": должен быть простым типом или разрешением на один |
Ошибка компилятора C3065 | не допускается объявление свойства не в области класса |
Ошибка компилятора C3066 | Существует несколько способов вызова объекта этого типа с помощью этих аргументов. |
Ошибка компилятора C3067 | Список инициализаторов нельзя использовать со встроенным оператором[] |
Ошибка компилятора C3068 | "идентификатор": функция "голая" не может содержать объекты, требующие отмены при возникновении исключения C++ |
Ошибка компилятора C3069 | оператор "operator": запрещено для типа перечисления |
Ошибка компилятора C3070 | "identifier": свойство не имеет метода set |
Ошибка компилятора C3071 | оператор "operator" может применяться только к экземпляру класса ссылок или типа значения |
Ошибка компилятора C3072 | Оператор "operator" не может применяться к экземпляру класса ссылок с помощью унарного оператора "%" для преобразования экземпляра класса ссылок в тип дескриптора. |
Ошибка компилятора C3073 | "identifier": класс ref не имеет определяемого пользователем конструктора копирования |
Ошибка компилятора C3074 | Массив не может быть инициализирован с помощью инициализатора с скобками |
Ошибка компилятора C3075 | "идентификатор": невозможно внедрить экземпляр ссылочного типа, типа "type", в тип значения |
Ошибка компилятора C3076 | "идентификатор": невозможно внедрить экземпляр ссылочного типа, типа "type", в собственном типе |
Ошибка компилятора C3077 | "идентификатор": метод завершения может быть только членом ссылочного типа |
Ошибка компилятора C3078 | Размер массива должен быть указан в новых выражениях |
Ошибка компилятора C3079 | Список инициализатора нельзя использовать в качестве правого операнда этого оператора назначения |
Ошибка компилятора C3080 | "метод завершения": метод завершения не может иметь описатель класса хранилища |
Ошибка компилятора C3081 | Является устаревшей. |
Ошибка компилятора C3082 | Является устаревшей. |
Ошибка компилятора C3083 | "идентификатор": символ слева от "::" должен быть типом |
Ошибка компилятора C3084 | "идентификатор": деструктор или метод завершения не может быть "ключевым словом" |
Ошибка компилятора C3085 | "идентификатор": конструктор не может быть "ключевым словом" |
Ошибка компилятора C3086 | не удается найти std::initializer_list: необходимо #include initializer_list <> |
Ошибка компилятора C3087 | "идентификатор": вызов "объявление" уже инициализирует этот элемент |
Ошибка компилятора C3088 | Class: конструктор атрибутов должен иметь именованные формальные аргументы |
Ошибка компилятора C3089 | "идентификатор": имя параметра не соответствует имени члена данных |
Ошибка компилятора C3090 | "class": класс атрибута не может быть шаблоном |
Ошибка компилятора C3091 | "class": класс атрибута не может иметь базовые классы |
Ошибка компилятора C3092 | "class": член класса атрибутов не может быть битовое поле, "статический" или "const" |
Ошибка компилятора C3093 | "type": тип не разрешен для члена класса атрибута "member" |
Ошибка компилятора C3094 | "атрибут": анонимное использование не разрешено |
Ошибка компилятора C3095 | "attribute": атрибут не может повторяться |
Ошибка компилятора C3096 | "атрибут": атрибут разрешен только для элементов данных классов атрибутов |
Ошибка компилятора C3097 | "атрибут": атрибут должен быть ограничен "assembly:" или "module:": |
Ошибка компилятора C3098 | "идентификатор": атрибут не имеет определяемых пользователем конструкторов |
Ошибка компилятора C3099 | 'keyword': use [System::AttributeUsageAttribute]/[Windows::Foundation::Metadata::AttributeUsageAttribute] для атрибутов managed/WinRT |
См. также
Компилятор C/C++ и средства сборки ошибок и предупреждений
Ошибки компилятора C2000 — C3999, C7000 — C7999