Freigeben über


Compilerfehler C3000 bis C3099

In den Artikeln in diesem Abschnitt der Dokumentation wird eine Teilmenge der vom Compiler generierten Fehlermeldungen erläutert.

Wichtig

Die Visual Studio-Compiler und -Buildtools können vielen Arten von Fehlern und Warnungen generieren. Nachdem ein Fehler oder eine Warnung erkannt wurde, können die Buildtools Annahmen über den beabsichtigten Zweck des Codes machen, und sie versuchen, den Code weiterhin auszuführen, sodass mehrere Probleme gleichzeitig gemeldet werden können. Wenn die Tools allerdings von falschen Annahmen ausgehen, sind spätere Fehler oder Warnungen möglicherweise nicht auf das Projekt anwendbar. Wenn Sie Probleme im Projekt beheben, sollten Sie immer mit dem ersten gemeldeten Problem (Fehler oder Warnung) beginnen, und häufig einen Rebuild für das Projekt ausführen. Durch eine Fehlerbehebung können möglicherweise viele nachfolgende Fehler behoben werden.

Um Hilfe zu einer bestimmten Diagnosenachricht in Visual Studio zu erhalten, wählen Sie sie im Fenster Ausgabe aus, und drücken Sie die Taste F1. Visual Studio öffnet die Dokumentationsseite für diesen Fehler, sofern vorhanden. Sie können auch das Suchtool oben auf der Seite verwenden, um Artikel zu bestimmten Fehlern oder Warnungen zu finden. Oder durchsuchen Sie die Liste der Fehler und Warnungen nach Tool und Typ im Inhaltsverzeichnis auf dieser Seite.

Hinweis

Nicht jeder Visual Studio-Fehler oder jede Warnung ist dokumentiert. In vielen Fällen sind bereits alle verfügbaren Informationen in der Fehlermeldung enthalten. Wenn Sie diese Seite erreicht haben, nachdem Sie F1 gedrückt haben, und der Ansicht sind, dass die Fehlermeldung oder Warnmeldung zusätzliche Erläuterungen benötigt, teilen Sie uns dies mit. Mithilfe der Feedbackschaltflächen auf dieser Seite können Sie ein Dokumentationsproblem auf GitHub melden. Wenn Sie glauben, dass der Fehler oder die Warnung falsch ist oder Sie ein weiteres Problem mit dem Toolset gefunden haben, melden Sie ein Produktproblem auf der Developer Community-Website. Sie können auch innerhalb der IDE Feedback senden und Fehler eingeben. Wechseln Sie in Visual Studio zur Menüleiste, und wählen Sie Hilfe > Feedback senden > Ein Problem melden aus, oder senden Sie einen Vorschlag über Hilfe > Feedback senden > Vorschlag senden. Es wurden einige Themen zu Compilerfehlern erstellt, die nicht vom Compiler ausgegeben werden und Sie jetzt stattdessen zu dieser Seite umleiten.

In Microsoft Learn Q&A-Foren finden Sie möglicherweise zusätzliche Unterstützung für Fehler und Warnungen. Oder suchen Sie auf der Website der Visual Studio C++-Developer Community nach der Fehler- oder Warnungsnummer. Sie können auch Stack Overflow nach Lösungen durchsuchen.

Links zu zusätzlichen Hilfe- und Communityressourcen finden Sie in der Hilfe und Community für Visual C++.

Fehlermeldungen

Fehler `Message`
Compilerfehler C3000 symbol“: Für die Verwendung einer Klassenvorlage ist eine Vorlagenargumentliste erforderlich. Die Argumentherleitung ist in einem nicht statischen Datenmember nicht zulässig.
Compilerfehler C3001 message“: Es wurde ein OpenMP-Direktivenname erwartet
Compilerfehler C3002 'name1 name2' :Mehrere OpenMP-Direktivennamen
Compilerfehler C3003 directive“: Ein OpenMP-Direktivenname ist nach Direktivenklauseln nicht zulässig
Compilerfehler C3004 clause“: Die Klausel ist für die „directive“-Direktive von OpenMP nicht gültig
Compilerfehler C3005 message“: Für die „directive“-Direktive von OpenMP wurde ein unerwartetes Token gefunden
Compilerfehler C3006 clause“: In der Klausel für die „directive“-Direktive von OpenMP fehlt ein erwartetes Argument
Compilerfehler C3007 clause“: Die Klausel für die „directive“-Direktive von OpenMP akzeptiert kein Argument
Compilerfehler C3008 argument“: Im Argument der „directive“-Direktive von OpenMP fehlt eine schließende Klammer „)“.
Compilerfehler C3009 label“: Der Sprung in einen strukturierten Block von OpenMP ist nicht zulässig
Compilerfehler C3010 label“: Der Sprung aus einem strukturiertem Block von OpenMP ist nicht zulässig
Compilerfehler C3011 Eine Inlineassembly direkt innerhalb eines parallelen Bereichs ist nicht zulässig.
Compilerfehler C3012 function“: Eine systeminterne Funktion ist direkt innerhalb eines parallelen Bereichs nicht zulässig
Compilerfehler C3013 clause“: Die Klausel darf nur einmal in der „directive“-Direktive von OpenMP vorkommen
Compilerfehler C3014 Es wurde erwartet, dass auf die „directive“-Direktive von OpenMP eine „For“-Schleife folgt
Compilerfehler C3015 Die Initialisierung in der For-Anweisung von OpenMP weist eine ungültige Form auf.
Compilerfehler C3016 identifier“: Die Indexvariable in der „For“-Anweisung von OpenMP muss einen ganzzahligen Typ mit Vorzeichen aufweisen
Compilerfehler C3017 Der Beendigungstest in der For-Anweisung von OpenMP weist eine ungültige Form auf.
Compilerfehler C3018 identifier“: Der Test oder das Inkrement in der „For“-Anweisung von OpenMP muss die Indexvariable „variable“ verwenden
Compilerfehler C3019 Das Inkrement in der „For“-Anweisung von OpenMP weist eine ungültige Form auf
Compilerfehler C3020 variable“: Die Indexvariable der „For“-Schleife von OpenMP kann nicht im Schleifentext geändert werden
Compilerfehler C3021 argument“: Das Argument der „directive“-Direktive von OpenMP ist leer
Compilerfehler C3022 directive“: Ungültiger Plantyp von „directive“ für die „directive“-Direktive von OpenMP
Compilerfehler C3023 argument“: Im Argument für die „directive“-Klausel von OpenMP wurde ein unerwartetes Token gefunden
Compilerfehler C3024 „schedule(runtime)“: Der chunk_size-Ausdruck ist nicht zulässig
Compilerfehler C3025 clause“: Es wurde ein ganzzahliger Ausdruck erwartet
Compilerfehler C3026 clause“: Der konstante Ausdruck muss positiv sein
Compilerfehler C3027 clause“: Es wurde ein arithmetischer Ausdruck oder Zeigerausdruck erwartet
Compilerfehler C3028 member“: Nur eine Variable oder ein statischer Datenmember kann in einer Datenfreigabeklausel verwendet werden
Compilerfehler C3029 symbol“: Darf nur einmal in Datenfreigabeklauseln in einer OpenMP-Direktive vorkommen
Compilerfehler C3030 identifier“: Die Variable in der „directive“-Klausel/-Direktive darf keinen Verweistyp aufweisen
Compilerfehler C3031 identifier“: Die Variable in der „reduction“-Klausel muss einen arithmetischen Skalartyp aufweisen
Compilerfehler C3032 identifier“: Die Variable in der „clause“-Klausel darf keinen unvollständigen Typ „type“ aufweisen
Compilerfehler C3033 identifier“: Die Variable in der „clause“-Klausel darf keinen durch eine Konstante qualifizierten Typ aufweisen
Compilerfehler C3034 Die „directive“-Direktive von OpenMP kann nicht direkt in der „directive“-Direktive geschachtelt werden
Compilerfehler C3035 Die ordered-Direktive von OpenMP muss mit der ordered-Klausel direkt an eine For-Direktive oder eine Parallel For-Direktive gebunden werden.
Compilerfehler C3036 clause“: Ungültiges Operatortoken in der „reduction“-Klausel von OpenMP
Compilerfehler C3037 identifier“: Die Variable in der „clause“-Klausel muss im umschließenden Kontext freigegeben sein
Compilerfehler C3038 identifier“: Die Variable in der „private“-Klausel kann im umschließenden Kontext keine reduction-Variable sein
Compilerfehler C3039 identifier“: Die Indexvariable in der „For“-Anweisung von OpenMP kann keine „reduction“-Variable sein
Compilerfehler C3040 identifier“: Der Typ der Variable in der „reduction“-Klausel ist nicht kompatibel mit dem „reduction“-Operator „operator
Compilerfehler C3041 identifier“: Die Variable in der „copyprivate“-Klausel muss im umschließenden Kontext privat sein
Compilerfehler C3042 „copyprivate“- und „nowait“-Klauseln dürfen nicht zusammen in der „directive“-Direktive von OpenMP angezeigt werden
Compilerfehler C3043 Die critical-Direktive von OpenMP kann nicht in einer critical-Direktive mit dem gleichen Namen geschachtelt werden.
Compilerfehler C3044 „section“: Nur bei direkter Schachtelung unter einer „sections“-Direktive von OpenMP zulässig
Compilerfehler C3045 Es wurde erwartet, dass auf die sections-Direktive von OpenMP eine Verbundanweisung folgt. '{' fehlt
Compilerfehler C3046 Fehlender strukturierter Block in einem #pragma omp sections-Bereich von OpenMP.
Compilerfehler C3047 Vor einem strukturierten Block in einem „sections“-Bereich von OpenMP muss „#pragma omp section“ stehen (Veraltet in Visual Studio 2022.)
Compilerfehler C3048 Der Ausdruck, der auf "#pragma omp atomic" folgt, weist eine ungültige Form auf.
Compilerfehler C3049 argument“: Ungültiges Argument in der „default“-Klausel von OpenMP
Compilerfehler C3050 class“: Eine Verweisklasse kann nicht von „identifier“ erben
Compilerfehler C3051 Veraltet.
Compilerfehler C3052 identifier“: Die Variable wird in einer Datenfreigabeklausel nicht unter einer „default(none)“-Klausel angezeigt
Compilerfehler C3053 identifier“: „threadprivate“ ist nur für globale oder statische Datenelemente gültig
Compilerfehler C3054 „#pragma omp parallel“ wird in einer generischen Klasse oder Funktion derzeit nicht unterstützt (Veraltet in Visual Studio 2022.)
Compilerfehler C3055 identifier“: Auf das Symbol kann erst verwiesen werden, wenn es in der „threadprivate“-Direktive verwendet wird
Compilerfehler C3056 identifier“: Das Symbol befindet sich nicht im gleichen Gültigkeitsbereich wie die „threadprivate“-Direktive
Compilerfehler C3057 identifier“: Die dynamische Initialisierung von „threadprivate“-Symbolen wird derzeit nicht unterstützt
Compilerfehler C3058 identifier“: Das Symbol kann erst als „threadprivate“ deklariert werden, wenn es in der „copyin“-Klausel verwendet wird
Compilerfehler C3059 identifier“: Ein „threadprivate“-Symbol kann nicht in der „clause“-Klausel verwendet werden
Compilerfehler C3060 identifier“: Eine friend-Funktion kann nicht mithilfe eines qualifizierten Namens innerhalb einer Klasse definiert werden (sie kann nur deklariert werden)
Compilerfehler C3061 Der Operator „operator“: Ist in der „type“-Enumeration mit zugrunde liegendem Typ „type“ nicht zulässig
Compilerfehler C3062 identifier“: Für den Enumerator ist ein Wert erforderlich, da der zugrunde liegende Typ „type“ ist
Compilerfehler C3063 Operator „operator“: Alle Operanden müssen den gleichen Enumerationstyp aufweisen
Compilerfehler C3064 identifier“: Muss ein einfacher Typ sein oder in einen einfachen Typ aufgelöst werden
Compilerfehler C3065 Die Eigenschaftendeklaration im Nichtklassenbereich ist nicht zulässig.
Compilerfehler C3066 Es gibt mehrere Möglichkeiten, um ein Objekt dieses Typs mit diesen Argumenten aufzurufen
Compilerfehler C3067 Eine Initialisiererliste kann nicht mit dem integrierten []-Operator verwendet werden
Compilerfehler C3068 identifier“: Eine „naked“-Funktion kann keine Objekte enthalten, für die eine Entladung erforderlich wäre, wenn eine C++-Ausnahme auftritt
Compilerfehler C3069 Der Operator „operator“: Ist für den Enumerationstyp nicht zulässig
Compilerfehler C3070 identifier“: Die Eigenschaft hat keine „set“-Methode
Compilerfehler C3071 Der Operator „operator“ kann nur auf eine Instanz einer Verweisklasse oder auf einen Werttyp angewendet werden
Compilerfehler C3072 Der Operator „operator“ kann nicht auf eine Instanz einer Verweisklasse angewendet werden; verwenden Sie den unären „%“-Operator, um eine Instanz einer Verweisklasse in einen Handletyp zu konvertieren
Compilerfehler C3073 identifier“: Die Verweisklasse hat keinen benutzerdefinierten Kopierkonstruktor
Compilerfehler C3074 Ein Array kann nicht mit einem in Klammern gesetzten Initialisierer initialisiert werden
Compilerfehler C3075 identifier“: Eine Instanz eines Verweistyps „type“ kann nicht in einen Werttyp eingebettet werden
Compilerfehler C3076 identifier“: Eine Instanz eines Verweistyps „type“ kann nicht in einen nativen Typ eingebettet werden
Compilerfehler C3077 identifier“: Ein Finalizer kann nur ein Member eines Verweistyps sein
Compilerfehler C3078 Die Arraygröße muss in neuen Ausdrücken angegeben werden
Compilerfehler C3079 Eine Initialisiererliste kann nicht als rechter Operand dieses Zuweisungsoperators verwendet werden
Compilerfehler C3080 finalizer“: Ein Finalizer darf keinen Speicherklassenspezifizierer aufweisen
Compilerfehler C3081 Veraltet.
Compilerfehler C3082 Veraltet.
Compilerfehler C3083 identifier“: Das Symbol links von „::“ muss ein Typ sein
Compilerfehler C3084 identifier“: Ein Destruktor/Finalizer darf nicht „keyword“ sein
Compilerfehler C3085 identifier“: Ein Konstruktor darf nicht „keyword“ sein
Compilerfehler C3086 „std::initializer_list“ kann nicht gefunden werden: Sie müssen #include <initializer_list> verwenden
Compilerfehler C3087 identifier“: Der Aufruf von „declaration“ initialisiert diesen Member bereits
Compilerfehler C3088 class“: Der Attributkonstruktor muss benannte formale Argumente aufweisen
Compilerfehler C3089 identifier“: Der Parametername stimmt nicht mit dem Namen eines Datenmembers überein
Compilerfehler C3090 class“: Die Attributklasse darf keine Vorlage sein
Compilerfehler C3091 class“: Die Attributklasse darf keine Basisklasse aufweisen
Compilerfehler C3092 class“: Der Attributklassenmember darf kein Bitfeld und nicht „static“ oder „const“ sein
Compilerfehler C3093 type“: Der Typ ist für den Attributklassenmember „member“ nicht zulässig
Compilerfehler C3094 attribute“: Eine anonyme Verwendung ist nicht zulässig
Compilerfehler C3095 attribute“: Das Attribut kann nicht wiederholt werden
Compilerfehler C3096 attribute“: Das Attribut ist nur für Datenmember von Attributklassen zulässig
Compilerfehler C3097 attribute“: Der Gültigkeitsbereich des Attributs muss mit „assembly:“ oder „module:“ festgelegt werden
Compilerfehler C3098 identifier“: Das Attribut besitzt keine benutzerdefinierten Konstruktoren
Compilerfehler C3099 keyword“: Verwenden Sie [System::AttributeUsageAttribute]/[Windows::Foundation::Metadata::AttributeUsageAttribute] für verwaltete Attribute/WinRT-Attribute

Weitere Informationen

C/C++-Compiler und -Buildtools: Fehler und Warnungen
Compilerfehler C2000 bis C3999, C7000 bis C7999