Поделиться через


Ошибки компилятора с C3000 по C3099

В статьях в этом разделе документации объясняется подмножество сообщений об ошибках, создаваемых компилятором.

Внимание

Компиляторы и средства сборки 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