Udostępnij za pomocą


Błędy kompilatora — od C2600 do C2699

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. Gdy naprawiasz problemy w projekcie, zawsze zaczynaj od pierwszego zgłoszonego błędu lub ostrzeżenia i często kompiluj ponownie. Jedna poprawka może rozwiązać wiele kolejnych błędów.

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 trafisz na tę stronę i pomyśl, że komunikat o błędzie lub ostrzeżeniu wymaga dodatkowego wyjaśnienia, daj nam znać, korzystając z przycisków opinii na tej stronie. 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 i wybierz pozycję Pomoc > Wyślij opinię > Zgłoś problemlub prześlij sugestię przy użyciu Pomoc > Wyślij opinię > Zasugeruj funkcję. Niektóre tematy błędów kompilatora zostały utworzone, ale nie są generowane przez kompilator i teraz przekierowują do tej strony.

Dodatkową pomoc dotyczącą błędów i ostrzeżeń można znaleźć na forach Microsoft Q&A C++. 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ż przeszukać 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 C2600 "function": nie można zdefiniować specjalnej funkcji składowej wygenerowanej przez kompilator (należy zadeklarować w pierwszej klasie)
Błąd kompilatora C2601 "function": lokalne definicje funkcji są niedozwolone
Błąd kompilatora C2602 "class::identifier" nie jest składową klasy bazowej klasy "class"
Błąd kompilatora C2603 "function": Zbyt wiele blokowych obiektów statycznych z konstruktorami/destruktorami w funkcji
Błąd kompilatora C2604 "identifier": Nie można zaimplementować więcej niż jednej metody interfejsu
Błąd kompilatora C2605 "identifier": ta metoda jest zarezerwowana w klasie zarządzanej/WinRT
Błąd kompilatora C2606 "class1": nie można ponownie zaimplementować członka, ponieważ jest dziedziczony z klasy bazowej środowiska uruchomieniowego "class2"
Błąd kompilatora C2607 asercja statyczna nie powiodła się
Błąd kompilatora C2608 nieprawidłowy token "token" na liście parametrów makro
Błąd kompilatora C2609 brak znaku ")" na liście parametrów makr
Błąd kompilatora C2610 'class::member': nie jest specjalną funkcją składową, która może być ustawiona jako domyślna
Błąd kompilatora C2611 "token": niedozwolony element po '~' (oczekiwany identyfikator)
Błąd kompilatora C2612 końcowy znak niedozwolony na liście inicjatora podstawowego/elementu członkowskiego
Błąd kompilatora C2613 niedozwolony znak końcowy 'character' na liście klas bazowych
Błąd kompilatora C2614 "class": nielegalna inicjalizacja składowych: "identyfikator" nie jest klasą bazową ani składową
Błąd kompilatora C2615 "offsetof" nie można zastosować do typu innego niż klasa "typu"
Błąd kompilatora C2616 "konwersja": nie można niejawnie przekonwertować obiektu niebędącego lwartością "type1" na "type2", który nie jest const"
Błąd kompilatora C2617 "function": niespójna instrukcja return
Błąd kompilatora C2618 nielegalny określnik elementów w offsetof
Błąd kompilatora C2619 "identifier": statyczne pole danych nie jest dozwolone w anonimowej strukturze/anonimowym złożeniu
Błąd kompilatora C2620 Nieaktualne.
Błąd kompilatora C2621 Nieaktualne.
Błąd kompilatora C2622 Nieaktualne.
Błąd kompilatora C2623 Nieaktualne.
Błąd kompilatora C2624 "scope::type": nie można używać klas lokalnych do deklarowania zmiennych "extern"
Błąd kompilatora C2625 "identyfikator": niedozwolony element członkowski unii; typ "type" jest typem referencyjnym
Błąd kompilatora C2626 "identyfikator": prywatna/chroniona składowa danych nie jest dozwolona w anonimowej strukturze/unii
Błąd kompilatora C2627 "function": funkcja składowa nie jest dozwolona w anonimowym unionie
Błąd kompilatora C2628 "type1", po którym następuje "type2", jest niedozwolone (czy zapomniałeś ';'?)
Błąd kompilatora C2629 "identifier": anonimowa struktura/połączenie nie może zadeklarować zagnieżdżonego typu
Błąd kompilatora C2630 "symbol" znaleziony w tym, co powinno być listą rozdzielaną przecinkami
Błąd kompilatora C2631 "identyfikator": nie można zdefiniować klasy lub wyliczenia w szablonie aliasu
Błąd kompilatora C2632 "type1", po którym następuje "type2", jest niedozwolone
Błąd kompilatora C2633 "identifier": "inline" jest jedyną legalną klasą przechowywania dla konstruktorów
Błąd kompilatora C2634 'class::member': wskaźnik do składowej referencyjnej jest niedozwolony
Błąd kompilatora C2635 program nie może przekonwertować 'type1*' na 'type2*'; przekonwertowanie z wirtualnej klasy bazowej jest dorozumiane
Błąd kompilatora C2636 "identyfikator": wskaźnik do odniesienia jest niepoprawny
Błąd kompilatora C2637 "identifier": nie można modyfikować wskaźników do elementów członkowskich danych
Błąd kompilatora C2638 "identyfikator": modyfikator __based niedozwolony dla wskaźnika do członka
Błąd kompilatora C2639 końcowy typ zwrotny "typ" przewodnika dedukcji powinien być specjalizacją szablonu klasy
Błąd kompilatora C2640 "deklarator abstrakcyjny": modyfikator __based niedozwolony przy referencji
Błąd kompilatora C2641 nie można wyłudzać argumentów szablonu dla nazwy szablonu"
Błąd kompilatora C2642 dwie deklaracje przewodników dedukcji dla tego samego szablonu klasy nie mogą mieć równoważnej listy parametrów i główki szablonu
Błąd kompilatora C2643 Przewodnik dedukcji powinien być zadeklarowany w tym samym zakresie co odpowiadający mu szablon klasy „nazwa szablonu”.
Błąd kompilatora C2644 Przewodnik dedukcyjny powinien mieć taki sam dostęp jak odpowiedni szablon klasy „nazwa szablonu
Błąd kompilatora C2645 brak kwalifikowanej nazwy wskaźnika do elementu członkowskiego (znaleziono ':: *')
Błąd kompilatora C2646 anonimowa struktura/unia w zakresie globalnym lub przestrzeni nazw musi być zadeklarowana jako statyczna
Błąd kompilatora C2647 "operator": nie można odwołać się do "type1" na 'type2'
Błąd kompilatora C2648 "identifier": użycie członka jako parametru domyślnego wymaga członka statycznego
Błąd kompilatora C2649 "identifier": nie jest elementem "class/struct/union"
Błąd kompilatora C2650 "operator": nie może być funkcją wirtualną
Błąd kompilatora C2651 'type': lewo od '::' musi być klasą, strukturą lub unionem
Błąd kompilatora C2652 "identifier": niedozwolony konstruktor kopiowania: pierwszy parametr nie może być "typem"
Błąd kompilatora C2653 "identifier": nie jest nazwą klasy ani przestrzeni nazw
Błąd kompilatora C2654 "identifier": próba uzyskania dostępu do członka poza funkcją składową
Błąd kompilatora C2655 "identyfikator": definicja lub ponowne zadeklarowanie niedozwolone w aktualnym kontekście"
Błąd kompilatora C2656 "function": funkcja nie jest dozwolona jako pole bitowe
Błąd kompilatora C2657 "class::*" znaleziony na początku instrukcji (czy zapomnisz określić typ?)
Błąd kompilatora C2658 "identifier": ponowne zdefiniowanie w anonimowej strukturze/unii
Błąd kompilatora C2659 "operator": funkcja jako lewy operand
Błąd kompilatora C2660 "function": funkcja nie bierze argumentów liczbowych
Błąd kompilatora C2661 "function": żadna przeciążona funkcja nie przyjmuje argumentów liczbowych
Błąd kompilatora C2662 "function": nie można przekonwertować wskaźnika "this" z "type1" na "type2"
Błąd kompilatora C2663 'function': żadna przeciążona funkcja nie ma prawidłowej konwersji dla wskaźnikathis'
Błąd kompilatora C2664 "function": nie można przekonwertować argumentu numeru z "type1" na "type2"
Błąd kompilatora C2665 "funkcja": żadna przeciążona funkcja nie mogła przekonwertować wszystkich typów argumentów
Błąd kompilatora C2666 "funkcja": przeciążone funkcje mają podobne konwersje
Błąd kompilatora C2667 "funkcja": żadna przeciążona funkcja nie ma najlepszej konwersji
Błąd kompilatora C2668 "function": niejednoznaczne wywołanie funkcji przeciążonej
Błąd kompilatora C2669 funkcja składowa nie jest dozwolona w unii anonimowej
Błąd kompilatora C2670 "function": szablon funkcji nie może przekonwertować liczby parametru number z typu "typ"
Błąd kompilatora C2671 "function": statyczne funkcje składowe nie mają wskaźników "this"
Błąd kompilatora C2672 "function": nie znaleziono pasującej przeciążonej funkcji
Błąd kompilatora C2673 "function": funkcje globalne nie mają wskaźników "this"
Błąd kompilatora C2674 deklaracja ogólna nie jest dozwolona w tym kontekście
Błąd kompilatora C2675 jednoargumentowy 'operator': 'typ' nie definiuje tego operatora ani konwersji na typ akceptowalny dla wstępnie zdefiniowanego operatora
Błąd kompilatora C2676 binarny operator "operator": "type" nie definiuje tego operatora ani konwersji na typ akceptowalny dla wstępnie zdefiniowanego operatora
Błąd kompilatora C2677 binarny operator "operator": nie znaleziono operatora globalnego, który przyjmuje typ "type" (lub nie ma dopuszczalnej konwersji)
Błąd kompilatora C2678 binarny operator "operator": nie znaleziono operatora przyjmującego lewy operand typu "type" (lub nie ma dopuszczalnej konwersji)
Błąd kompilatora C2679 binarny operator "operator": nie znaleziono operatora, który przyjmuje prawostronny operand typu "type" (lub nie ma dopuszczalnej konwersji)
Błąd kompilatora C2680 "type": nieprawidłowy typ docelowy dla rzutu
Błąd kompilatora C2681 "type": nieprawidłowy typ wyrażenia dla rzutu
Błąd kompilatora C2682 Nie można użyć rzutowania do konwersji z "type1" na "type2"
Błąd kompilatora C2683 cast: type nie jest typem polimorficznym
Błąd kompilatora C2684 "deklarator": usunięte i domyślne funkcje nie są obsługiwane w klasach zarządzanych/WinRT
Błąd kompilatora C2685 "deklarator": funkcje usunięte i domyślne nie są obsługiwane z użyciem jawnych specyfikatorów ograniczeń
Błąd kompilatora C2686 nie można przeciążać statycznych i niestatycznych funkcji składowych z tymi samymi typami parametrów
Błąd kompilatora C2687 "type": deklaracja wyjątku nie może być "void" ani oznaczać niekompletnego typu lub wskaźnika lub odwołania do niekompletnego typu
Błąd kompilatora C2688 'type::member': kowariantne zwracanie przy wielokrotnym lub wirtualnym dziedziczeniu nie jest obsługiwane dla funkcji varargs
Błąd kompilatora C2689 "function": nie można zdefiniować funkcji znajomej w klasie lokalnej
Błąd kompilatora C2690 "operator": nie można wykonać arytmetyki wskaźnika na tablicy zarządzanej/WinRT
Błąd kompilatora C2691 "type": tablica zarządzana/WinRT nie może mieć tego typu elementu
Błąd kompilatora C2692 "function": w pełni prototypowane funkcje wymagane w kompilatorze języka C z opcją "/clr"
Błąd kompilatora C2693 "operator": nielegalne porównanie dla referencji do zarządzanej tablicy WinRT"
Błąd kompilatora C2694 "override_function": zastępowanie funkcji wirtualnej ma mniej restrykcyjną specyfikację wyjątku niż funkcja wirtualna klasy bazowej "base_function"
Błąd kompilatora C2695 "override_function": zastępowanie funkcji wirtualnej różni się od "base_function" tylko konwencją wywołania"
Błąd kompilatora C2696 Nie można utworzyć tymczasowego obiektu zarządzanego/winRT typu "type"
Błąd kompilatora C2697 Nieaktualne.
Błąd kompilatora C2698 deklaracja using dla "deklaracja1" nie może współistnieć z istniejącą deklaracją using dla "deklaracja2"

Zobacz też

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