Udostępnij za pośrednictwem


Błędy kompilatora — od C2900 do C2999

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 C2900 "deklarator": szablony funkcji składowych w klasach WinRT muszą być "prywatne", "wewnętrzne" lub "chronione prywatne"
Błąd kompilatora C2901 "identyfikator": interfejs ogólny lub delegat nie może być publiczny
Błąd kompilatora C2902 "token": nieoczekiwany token po "template/generic", oczekiwany identyfikator (przestarzały w programie Visual Studio 2022).
Błąd kompilatora C2903 "identifier": symbol nie jest ani szablonem klasy, ani ogólnym, ani szablonem funkcji/ogólnym
Błąd kompilatora C2904 "identifier": nazwa już używana dla szablonu w bieżącym zakresie
Błąd kompilatora C2905 Nieaktualne.
Błąd kompilatora C2906 "template": jawna specjalizacja wymaga "szablonu <>"
Błąd kompilatora C2907 argument rejestru "number" nie określa prawidłowego numeru rejestru
Błąd kompilatora C2908 jawna specjalizacja; Wystąpienie szablonu zostało już utworzone
Błąd kompilatora C2909 "identifier": jawne utworzenie wystąpienia szablonu funkcji wymaga zwracanego typu
Błąd kompilatora C2910 "function": nie może być jawnie wyspecjalizowany
Błąd kompilatora C2911 "element członkowski": nie można zadeklarować ani zdefiniować go w bieżącym zakresie
Błąd kompilatora C2912 jawna specjalizacja "deklaracja" nie jest specjalizacją szablonu funkcji
Błąd kompilatora C2913 jawna specjalizacja; "deklaracja" nie jest specjalizacją szablonu klasy
Błąd kompilatora C2914 "identifier": nie można wyłudzać szablonu/argumentu ogólnego, ponieważ argument funkcji jest niejednoznaczny
Błąd kompilatora C2915 "identifier": "type" nie można używać bezpośrednio na opublikowanej powierzchni typu WinRT. Zamiast tego użyj polecenia "Platform::Object^", aby przekazać ten typ
Błąd kompilatora C2916 "identifier": [FlagsAttribute] musi (tylko) być określony w publicznym wyliczeniem z typem bazowym "niepodpisane int"
Błąd kompilatora C2917 "identifier": nieprawidłowy parametr-szablonu (przestarzały w programie Visual Studio 2022).
Błąd kompilatora C2918 "identifier": Właściwości indeksowane nie mogą być używane na opublikowanej powierzchni typu WinRT
Błąd kompilatora C2919 "type": Operatory nie mogą być używane na opublikowanej powierzchni typu WinRT
Błąd kompilatora C2920 redefinition: "type": szablon klasy/rodzaj został już zadeklarowany jako "deklaracja"
Błąd kompilatora C2921 redefinition: "type": szablon klasy/rodzaj jest ponownie deklarowany jako "deklaracja"
Błąd kompilatora C2922 "interface": interfejs WinRT nie może zawierać statycznych elementów członkowskich
Błąd kompilatora C2923 "type": "identifier" nie jest prawidłowym argumentem szablonu/typu ogólnego dla parametru "parametr"
Błąd kompilatora C2924 argument rutynowy __declspec(przerwania) nie w R2
Błąd kompilatora C2925 procedury __declspec(przerwania) nie mogą używać zmiennoprzecinkowych
Błąd kompilatora C2926 "identifier": domyślny inicjator składowy nie jest dozwolony dla elementu członkowskiego anonimowej struktury w unii
Błąd kompilatora C2927 "identifier": szablon funkcji musi być wywoływany z co najmniej jednym argumentem
Błąd kompilatora C2928 jawne utworzenie wystąpienia; "identifier" nie jest elementem członkowskim funkcji ani statycznych danych klasy szablonu "class"
Błąd kompilatora C2929 "deklarator": jawne wystąpienie; nie może jawnie wymusić i pominąć wystąpienia składowej klasy szablonu
Błąd kompilatora C2930 "class": template-id/generic-id zdefiniowano ponownie jako moduł wyliczający "identyfikator wyliczenia"
Błąd kompilatora C2931 "class1": template-id/generic-id zdefiniowano ponownie jako funkcję składową klasy "class2" (przestarzałe w programie Visual Studio 2022).
Błąd kompilatora C2932 "type": template-id/generic-id zdefiniowano ponownie jako element członkowski danych "identifier" (przestarzałe w programie Visual Studio 2022).
Błąd kompilatora C2933 "type": template-id/generic-id zdefiniowano ponownie jako element członkowski definicji typu "identifier" (przestarzałe w programie Visual Studio 2022).
Błąd kompilatora C2934 "type": template-id/generic-id zdefiniowano ponownie jako zagnieżdżony element "identyfikator" (przestarzały w programie Visual Studio 2022).
Błąd kompilatora C2935 "type": template-id/generic-id zdefiniowano ponownie jako funkcję globalną (przestarzałą w programie Visual Studio 2022).
Błąd kompilatora C2936 "type": template-id/generic-id zdefiniowano ponownie jako globalną zmienną danych (przestarzałą w programie Visual Studio 2022).
Błąd kompilatora C2937 "type": template-id/generic-id zdefiniowano ponownie jako definicję typu globalnego (przestarzałe w programie Visual Studio 2022).
Błąd kompilatora C2938 "identifier" : Nie można specjalizować szablonu aliasu
Błąd kompilatora C2939 "type": template-id/generic-id zdefiniowano ponownie jako lokalną zmienną danych (przestarzałą w programie Visual Studio 2022).
Błąd kompilatora C2940 "type": template-id/generic-id zdefiniowano ponownie jako definicję lokalnego typu (przestarzałe w programie Visual Studio 2022).
Błąd kompilatora C2941 "type": template-id/generic-id zdefiniowano ponownie jako lokalny element (przestarzały w programie Visual Studio 2022).
Błąd kompilatora C2942 "type": template-id/generic-id zdefiniowano ponownie jako formalny argument funkcji (przestarzałe w programie Visual Studio 2022).
Błąd kompilatora C2943 "type": template-id/generic-id zdefiniowano ponownie jako argument typu szablonu (przestarzałe w programie Visual Studio 2022).
Błąd kompilatora C2944 "type": template-id/generic-id zdefiniowano ponownie jako argument wartości szablonu (przestarzałe w programie Visual Studio 2022).
Błąd kompilatora C2945 jawne tworzenie wystąpienia nie odnosi się do specjalizacji klasy szablonu
Błąd kompilatora C2946 jawne utworzenie wystąpienia; "typ" nie jest specjalizacją klasy szablonu
Błąd kompilatora C2947 oczekiwanie na> zakończenie argumentów szablonu "" znaleziono "token"
Błąd kompilatora C2948 jawne utworzenie wystąpienia; specyfikator klasy magazynu "specyfikator" nie jest dozwolony w przypadku specjalizacji
Błąd kompilatora C2949 thread_local nie jest obsługiwana w przypadku /kernel
Błąd kompilatora C2950 Nieaktualne.
Błąd kompilatora C2951 deklaracje szablonu/ogólnego są dozwolone tylko w zakresie globalnym, przestrzeni nazw lub klasy
Błąd kompilatora C2952 "deklaracja": brak szablonu/deklaracji ogólnej szablonu/listy parametrów ogólnych
Błąd kompilatora C2953 "type": szablon klasy został już zdefiniowany
Błąd kompilatora C2954 argument wyrazu instrukcji, który nie jest w zakresie
Błąd kompilatora C2955 "type": użycie szablonu klasy/generic wymaga szablonu/listy argumentów ogólnych
Błąd kompilatora C2956 Zwykła funkcja deallocation "function" zostałaby wybrana jako funkcja deallocation umieszczania
Błąd kompilatora C2957 "token": nieprawidłowy ogranicznik po lewej stronie: oczekiwano znaku "<"
Błąd kompilatora C2958 Lewy ogranicznik znaleziony w folderze "file(line_number)" nie został poprawnie dopasowany
Błąd kompilatora C2959 klasa ogólna lub funkcja nie może być członkiem szablonu
Błąd kompilatora C2960 Nieaktualne.
Błąd kompilatora C2961 "function": niespójne wystąpienia jawne, poprzednie jawne wystąpienie nie określiło "argumentu"
Błąd kompilatora C2962 błąd składni: "token": oczekiwana definicja funkcji składowej klasy szablonu do końca z elementem "}"
Błąd kompilatora C2963 Nieaktualne.
Błąd kompilatora C2964 Nieaktualne.
Błąd kompilatora C2965 __declspec (specyfikator) nie jest obsługiwany w przypadku /kernel
Błąd kompilatora C2966 "identifier1": musi mieć taki sam __declspec(code_seg(...)), jak w klasie bazowej "identifier2" (przestarzałe w programie Visual Studio 2022).
Błąd kompilatora C2967 "identifier": zastępowana funkcja wirtualna musi mieć taką samą __declspec(code_seg(...)) jak zastąpiona funkcja wirtualna (przestarzała w programie Visual Studio 2022).
Błąd kompilatora C2968 "identifier": rekursywna deklaracja aliasu
Błąd kompilatora C2969 błąd składni: "token": oczekiwana definicja funkcji składowej do końca z "}"
Błąd kompilatora C2970 "type": parametr szablonu "parameter": "argument": wyrażenie obejmujące obiekty z wewnętrznym połączeniem nie może być używane jako argument nietypowy
Błąd kompilatora C2971 "type": parametr szablonu "parameter": "argument": zmienna z niestacjonanym czasem trwania magazynu nie może być używana jako argument inny niż typ
Błąd kompilatora C2972 "type": parametr szablonu "parametr": typ argumentu innego niż typ jest nieprawidłowy
Błąd kompilatora C2973 "template": nieprawidłowy argument szablonu "number"
Błąd kompilatora C2974 "type": nieprawidłowy argument szablonu/ogólny dla parametru, oczekiwany typ
Błąd kompilatora C2975 "type": nieprawidłowy argument szablonu dla "parametru", oczekiwane wyrażenie stałej w czasie kompilacji
Błąd kompilatora C2976 "type": zbyt mało argumentów szablonu/argumentów ogólnych
Błąd kompilatora C2977 "type": zbyt wiele argumentów szablonu/ogólnych
Błąd kompilatora C2978 błąd składni: oczekiwano słowa kluczowego "keyword1" lub "keyword2"; znaleziony typ "type"; parametry inne niż typ nie są obsługiwane w rodzajach ogólnych
Błąd kompilatora C2979 jawne specjalizacje nie są obsługiwane w rodzajach ogólnych
Błąd kompilatora C2980 Obsługa wyjątków języka C++ nie jest obsługiwana w przypadku /kernel
Błąd kompilatora C2981 dynamiczna forma słowa kluczowego nie jest obsługiwana w przypadku /kernel
Błąd kompilatora C2982 "deklaracja": użyto różnych __declspec(code_seg(...)): to "identifier1" now "identifier2"
Błąd kompilatora C2983 "deklaracja": wszystkie deklaracje muszą mieć identyczne __declspec(code_seg(...))
Błąd kompilatora C2984 Nieaktualne.
Błąd kompilatora C2985 "argument": argument do __declspec(code_seg(...)) musi być sekcją tekstową
Błąd kompilatora C2986 "identifier": __declspec(code_seg(...)) można stosować tylko do klasy lub funkcji
Błąd kompilatora C2987 deklaracja nie może mieć obu __declspec(code_seg('identifier')) i __declspec(code_seg('value'))
Błąd kompilatora C2988 nierozpoznawalna deklaracja/definicja szablonu
Błąd kompilatora C2989 "klasa": szablon klasy/rodzaj został już zadeklarowany jako szablon nieklasowy/ogólny
Błąd kompilatora C2990 "class": szablon nieklasowy/ogólny został już zadeklarowany jako szablon klasy/ogólny
Błąd kompilatora C2991 ponowne zdefiniowanie szablonu/parametru ogólnego "parametr"
Błąd kompilatora C2992 "klasa": nieprawidłowa lub brakująca lista parametrów szablonu/ogólnego parametru
Błąd kompilatora C2993 "type": niedozwolony typ parametru szablonu innego niż typ "identifier"
Błąd kompilatora C2994 nienazwana klasa na liście parametrów szablonu
Błąd kompilatora C2995 "deklaracja": szablon funkcji został już zdefiniowany
Błąd kompilatora C2996 "function": rekursywna definicja szablonu funkcji
Błąd kompilatora C2997 "function": nie można odwoływać ograniczenia tablicy z domyślnego inicjatora składowego
Błąd kompilatora C2998 "deklarator": nie może być definicją szablonu

Zobacz też

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