Udostępnij za pomocą


Błędy kompilatora — od C3000 do C3099

Artykuły w tej sekcji dokumentacji wyjaśniają podzbiór komunikatów o błędach generowanych przez kompilator.

Ważne

Kompilatory i narzędzia kompilacji programu Visual Studio mogą zgłaszać wiele rodzajów błędów i ostrzeżeń. Po znalezieniu błędu lub ostrzeżenia narzędzia kompilacji mogą podjąć założenia dotyczące intencji kodu i próby kontynuowania, dzięki czemu więcej problemów można zgłaszać w tym samym czasie. Jeśli narzędzia przyjmą błędne założenie, późniejsze błędy lub ostrzeżenia mogą nie mieć zastosowania do projektu. W przypadku naprawiania problemów w projekcie zawsze należy zacząć od pierwszego zgłoszonego błędu lub ostrzeżenia i często ponownie skompilować. Jedna poprawka może spowodować, że wiele kolejnych błędów zniknie.

Aby uzyskać pomoc dotyczącą konkretnego komunikatu diagnostycznego w programie Visual Studio, wybierz go w oknie Dane wyjściowe i naciśnij F1 . Program Visual Studio otwiera stronę dokumentacji dla tego błędu, jeśli istnieje. Możesz również użyć narzędzia wyszukiwania w górnej części strony, aby znaleźć artykuły dotyczące określonych błędów lub ostrzeżeń. Możesz też przejrzeć listę błędów i ostrzeżeń według narzędzia i wpisać spis treści na tej stronie.

Uwaga

Nie każdy błąd lub ostrzeżenie programu Visual Studio nie jest udokumentowane. W wielu przypadkach komunikat diagnostyczny zawiera wszystkie dostępne informacje. Jeśli wylądowałeś na tej stronie, gdy użyto F1 i uważasz, że komunikat o błędzie lub ostrzeżeniu wymaga dodatkowego wyjaśnienia, daj nam znać. Możesz użyć przycisków opinii na tej stronie, aby zgłosić problem z dokumentacją w usłudze GitHub. Jeśli uważasz, że błąd lub ostrzeżenie jest nieprawidłowe lub znaleziono inny problem z zestawem narzędzi, zgłoś problem z produktem w witrynie Społeczność deweloperów. Możesz również wysłać opinię i wprowadzić usterki w środowisku IDE. W programie Visual Studio przejdź do paska menu, a następnie wybierz pozycję Pomoc Wyślij zgłoszenie o > problemie lub prześlij sugestię, korzystając z opcji Wyślij opinię w pomocy > > Wyślij sugestię>. Niektóre tematy błędów kompilatora zostały utworzone, które nie są emitowane przez kompilator, a teraz przekieruj do tej strony.

Dodatkową pomoc dotyczącą błędów i ostrzeżeń można znaleźć na forach pytań i odpowiedzi na platformie Microsoft Learn. Możesz też wyszukać numer błędu lub ostrzeżenia w witrynie Społeczności deweloperów programu Visual Studio C++. Możesz również wyszukać rozwiązanie Stack Overflow , aby znaleźć rozwiązania.

Aby uzyskać linki do dodatkowych zasobów pomocy i społeczności, zobacz Visual C++ Help and Community (Pomoc i społeczność języka Visual C++).

Komunikaty o błędach

Błąd Komunikat
Błąd kompilatora C3000 "symbol": użycie szablonu klasy wymaga listy argumentów szablonu. Odliczenie argumentów nie jest dozwolone w niestacjonanym elemencie członkowskim danych.
Błąd kompilatora C3001 "message": oczekiwana nazwa dyrektywy OpenMP
Błąd kompilatora C3002 "name1 name2": wiele nazw dyrektyw OpenMP
Błąd kompilatora C3003 "dyrektywa": nazwa dyrektywy OpenMP niedozwolona po klauzulach dyrektywy
Błąd kompilatora C3004 "klauzula": klauzula nieprawidłowa w dyrektywie OpenMP "dyrektywa"
Błąd kompilatora C3005 "message": nieoczekiwany token napotkany w dyrektywie OpenMP "dyrektywa"
Błąd kompilatora C3006 "klauzula": w dyrektywie OpenMP "dyrektywa" brakuje oczekiwanego argumentu
Błąd kompilatora C3007 "klauzula": klauzula dyrektywy OpenMP "dyrektywa" nie bierze argumentu
Błąd kompilatora C3008 "argument": brak zamykającego argumentu ")" w dyrektywie OpenMP "dyrektywa"
Błąd kompilatora C3009 "label": przechodzenie do bloku strukturalnego OpenMP jest niedozwolone
Błąd kompilatora C3010 "label": wyskocz z bloku strukturalnego OpenMP, który nie jest dozwolony
Błąd kompilatora C3011 Wbudowany zestaw nie jest dozwolony bezpośrednio w regionie równoległym
Błąd kompilatora C3012 "function": funkcja wewnętrzna nie jest dozwolona bezpośrednio w regionie równoległym
Błąd kompilatora C3013 "klauzula": klauzula może pojawiać się tylko raz w dyrektywie OpenMP "dyrektywa"
Błąd kompilatora C3014 oczekiwana pętla for po dyrektywie OpenMP "dyrektywa"
Błąd kompilatora C3015 inicjowanie w instrukcji "for" openMP ma niewłaściwy formularz
Błąd kompilatora C3016 "identifier": zmienna indeksu w instrukcji OpenMP "for" musi mieć podpisany typ całkowity
Błąd kompilatora C3017 test zakończenia w instrukcji "for" openMP ma niewłaściwy formularz
Błąd kompilatora C3018 "identifier": OpenMP "for" test lub przyrost musi używać zmiennej indeksu "zmienna"
Błąd kompilatora C3019 instrukcja "for" increment increment increment inMP "for" ma niewłaściwy formularz
Błąd kompilatora C3020 "zmienna": zmienna indeksu pętli OpenMP "for" nie może być modyfikowana w treści pętli
Błąd kompilatora C3021 "argument": argument jest pusty w dyrektywie OpenMP "dyrektywa"
Błąd kompilatora C3022 "dyrektywa": nieprawidłowy rodzaj "dyrektywy" harmonogramu w dyrektywie OpenMP "dyrektywa"
Błąd kompilatora C3023 "argument": nieoczekiwany token napotkany w argumencie klauzuli "dyrektywa" openMP
Błąd kompilatora C3024 "schedule(runtime)": wyrażenie chunk_size jest niedozwolone
Błąd kompilatora C3025 "klauzula": oczekiwane wyrażenie całkowite
Błąd kompilatora C3026 "klauzula": wyrażenie stałe musi być dodatnie
Błąd kompilatora C3027 "klauzula": oczekiwane wyrażenie arytmetyczne lub wskaźnikowe
Błąd kompilatora C3028 "member": w klauzuli udostępniania danych można używać tylko zmiennej lub statycznej składowej danych
Błąd kompilatora C3029 "symbol": może być wyświetlany tylko raz w klauzulach udostępniania danych w dyrektywie OpenMP
Błąd kompilatora C3030 "identifier": zmienna w klauzuli "dyrektywa" /dyrektywa nie może mieć typu odwołania
Błąd kompilatora C3031 "identifier": zmienna w klauzuli "reduction" musi mieć typ arytmetyczny skalarny
Błąd kompilatora C3032 "identifier": zmienna w klauzuli "clause" nie może mieć niekompletnego typu "type"
Błąd kompilatora C3033 "identifier": zmienna w klauzuli "clause" nie może mieć typu kwalifikowanego const
Błąd kompilatora C3034 Dyrektywa OpenMP "dyrektywa" nie może być bezpośrednio zagnieżdżona w dyrektywie "dyrektywa"
Błąd kompilatora C3035 Dyrektywa OpenMP "uporządkowana" musi wiązać się bezpośrednio z dyrektywą "for" lub "parallel for" z klauzulą "order"
Błąd kompilatora C3036 "klauzula": nieprawidłowy token operatora w klauzuli "redukcja" openMP
Błąd kompilatora C3037 "identifier": zmienna w klauzuli "clause" musi być współużytkowany w kontekście otaczającym
Błąd kompilatora C3038 "identifier": zmienna w klauzuli "private" nie może być zmienną redukcji w kontekście otaczającym
Błąd kompilatora C3039 "identifier": zmienna indeksu w instrukcji OpenMP "for" nie może być zmienną redukcji
Błąd kompilatora C3040 "identifier": typ zmiennej w klauzuli "reduction" jest niezgodny z operatorem redukcji "operator"
Błąd kompilatora C3041 "identifier": zmienna w klauzuli "copyprivate" musi być prywatna w kontekście otaczającym
Błąd kompilatora C3042 Klauzule "copyprivate" i "nowait" nie mogą pojawiać się razem w dyrektywie OpenMP "dyrektywa"
Błąd kompilatora C3043 Dyrektywy OpenMP "critical" nie można zagnieżdżać w dyrektywie "krytycznej" o tej samej nazwie
Błąd kompilatora C3044 "section": dozwolone tylko bezpośrednie zagnieżdżone w ramach dyrektywy OpenMP "sekcje"
Błąd kompilatora C3045 Oczekiwano instrukcji złożonej po dyrektywie OpenMP "sekcje". Brak elementu "{"
Błąd kompilatora C3046 Brak bloku strukturalnego w regionie openMP "#pragma sekcji omp"
Błąd kompilatora C3047 Blok ustrukturyzowany w regionie "sekcje" openMP musi być poprzedzony sekcją "#pragma omp" (przestarzałe w programie Visual Studio 2022).
Błąd kompilatora C3048 Wyrażenie po "#pragma niepodzielne" ma niewłaściwą formę
Błąd kompilatora C3049 "argument": nieprawidłowy argument w klauzuli "default" openMP
Błąd kompilatora C3050 "class": klasa ref nie może dziedziczyć z "identyfikatora"
Błąd kompilatora C3051 Nieaktualne.
Błąd kompilatora C3052 "identifier": zmienna nie jest wyświetlana w klauzuli udostępniania danych w klauzuli default(none)
Błąd kompilatora C3053 "identifier": wartość "threadprivate" jest prawidłowa tylko dla elementów danych globalnych lub statycznych
Błąd kompilatora C3054 Funkcja "#pragma równoległa omp" nie jest obecnie obsługiwana w klasie ogólnej lub funkcji (przestarzałe w programie Visual Studio 2022).
Błąd kompilatora C3055 "identifier": nie można odwołać się do symbolu przed jego zastosowaniem w dyrektywie "threadprivate"
Błąd kompilatora C3056 "identifier": symbol nie znajduje się w tym samym zakresie z dyrektywą "threadprivate"
Błąd kompilatora C3057 "identifier": dynamiczne inicjowanie symboli "threadprivate" nie jest obecnie obsługiwane
Błąd kompilatora C3058 "identifier": symbol nie zadeklarowany jako "threadprivate", zanim zostanie użyty w klauzuli "copyin"
Błąd kompilatora C3059 "identifier": symbol "threadprivate" nie może być używany w klauzuli "klauzula"
Błąd kompilatora C3060 "identifier": funkcja znajoma może nie być zdefiniowana wewnątrz klasy przy użyciu kwalifikowanej nazwy (może być zadeklarowana tylko)
Błąd kompilatora C3061 operator "operator": niedozwolone w wyliczenie "type" z typem bazowym "type"
Błąd kompilatora C3062 "identifier": moduł wyliczający wymaga wartości, ponieważ typ bazowy to "typ"
Błąd kompilatora C3063 operator "operator": wszystkie operandy muszą mieć ten sam typ wyliczenia
Błąd kompilatora C3064 "identyfikator": musi być prostym typem lub rozpoznawać go
Błąd kompilatora C3065 deklaracja właściwości w zakresie nieklasowym jest niedozwolona
Błąd kompilatora C3066 istnieje wiele sposobów wywoływanych przez obiekt tego typu za pomocą tych argumentów
Błąd kompilatora C3067 nie można użyć listy inicjatora z wbudowanym operatorem[]
Błąd kompilatora C3068 "identifier": funkcja "naked" nie może zawierać obiektów, które wymagają odwijania, jeśli wystąpił wyjątek języka C++.
Błąd kompilatora C3069 operator "operator": niedozwolone dla typu wyliczenia
Błąd kompilatora C3070 "identifier": właściwość nie ma metody "set"
Błąd kompilatora C3071 operator "operator" można zastosować tylko do wystąpienia klasy ref lub typu wartości
Błąd kompilatora C3072 operator "operator" nie może zostać zastosowany do wystąpienia klasy ref, używając operatora jednoargumentowego "%", aby przekonwertować wystąpienie klasy ref na typ uchwytu
Błąd kompilatora C3073 "identifier": klasa ref nie ma konstruktora kopiowania zdefiniowanego przez użytkownika
Błąd kompilatora C3074 nie można zainicjować tablicy za pomocą inicjatora nawiasu
Błąd kompilatora C3075 "identifier": nie można osadzić wystąpienia typu odwołania, "type" w typie wartości
Błąd kompilatora C3076 "identifier": nie można osadzić wystąpienia typu odwołania, "type" w typie natywnym
Błąd kompilatora C3077 "identifier": finalizator może być tylko elementem członkowskim typu odwołania
Błąd kompilatora C3078 rozmiar tablicy musi być określony w nowych wyrażeniach
Błąd kompilatora C3079 nie można użyć listy inicjatora jako prawego operandu tego operatora przypisania
Błąd kompilatora C3080 "finalizer": finalizator nie może mieć specyfikatora klasy magazynu
Błąd kompilatora C3081 Nieaktualne.
Błąd kompilatora C3082 Nieaktualne.
Błąd kompilatora C3083 "identifier": symbol po lewej stronie znaku "::" musi być typem
Błąd kompilatora C3084 "identifier": destruktor/finalizator nie może być "słowem kluczowym"
Błąd kompilatora C3085 "identifier": konstruktor nie może być "słowem kluczowym"
Błąd kompilatora C3086 nie można odnaleźć pliku "std::initializer_list": musisz #include initializer_list <>
Błąd kompilatora C3087 "identifier": wywołanie "deklaracji" już inicjuje ten element członkowski
Błąd kompilatora C3088 "class": konstruktor atrybutu musi mieć nazwane argumenty formalne
Błąd kompilatora C3089 "identifier": nazwa parametru nie jest zgodna z nazwą żadnego elementu członkowskiego danych
Błąd kompilatora C3090 "class": klasa atrybutu nie może być szablonem
Błąd kompilatora C3091 "class": klasa atrybutów nie może mieć klas bazowych
Błąd kompilatora C3092 "class": składowa klasy atrybutu nie może być polem bitowym, "statycznym" ani "const"
Błąd kompilatora C3093 "type": typ niedozwolony dla składowej klasy atrybutu "member"
Błąd kompilatora C3094 "attribute": niedozwolone użycie anonimowe
Błąd kompilatora C3095 "atrybut": nie można powtórzyć atrybutu
Błąd kompilatora C3096 "attribute": atrybut jest dozwolony tylko dla składowych danych klas atrybutów
Błąd kompilatora C3097 "attribute": atrybut musi być o określonym zakresie z atrybutem "assembly:" lub "module:"
Błąd kompilatora C3098 "identifier": atrybut nie ma konstruktorów zdefiniowanych przez użytkownika
Błąd kompilatora C3099 'słowo kluczowe': użyj elementu [System::AttributeUsageAttribute]/[Windows::Foundation::Metadata::AttributeUsageAttribute] dla atrybutów zarządzanych/WinRT

Zobacz też

Błędy i ostrzeżenia kompilatora C/C++ i narzędzi kompilacji
Błędy kompilatora C2000 — C3999, C7000 – C7999