Udostępnij przez


Ostrzeżenia kompilatora Microsoft C/C++ od C5000 do C5199

W artykułach w tej sekcji opisano komunikaty ostrzegawcze kompilatora Microsoft C/C++ od C5000 do C5199.

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 ostrzegawcze

Ostrzeżenie Komunikat
Ostrzeżenie kompilatora C5022 "type": określono wiele konstruktorów przenoszenia
Ostrzeżenie kompilatora C5023 "type": określono wiele operatorów przypisania przenoszenia
Ostrzeżenie kompilatora (poziom 4, wyłączony) C5024 "type": konstruktor przenoszenia został niejawnie zdefiniowany jako usunięty
Ostrzeżenie kompilatora (poziom 4, wyłączony) C5025 "type": operator przypisania przenoszenia został niejawnie zdefiniowany jako usunięty
Ostrzeżenie kompilatora (poziom 1 i poziom 4, wyłączony) C5026 "type": konstruktor przenoszenia został niejawnie zdefiniowany jako usunięty
Ostrzeżenie kompilatora (poziom 1 i poziom 4, wyłączone) C5027 "type": operator przypisania przenoszenia został niejawnie zdefiniowany jako usunięty
Ostrzeżenie kompilatora (poziom 1) C5028 "name": Wyrównanie określone w poprzedniej deklaracji (liczba) nie określono w definicji
Ostrzeżenie kompilatora (poziom 4, wyłączony) C5029 używane niestandardowe rozszerzenie: atrybuty wyrównania w języku C++ mają zastosowanie tylko do zmiennych, elementów członkowskich danych i typów tagów
Ostrzeżenie kompilatora (poziom 3) C5030 atrybut "attribute-name" nie jest rozpoznawany
Ostrzeżenie kompilatora (poziom 4, wyłączony) C5031 #pragma warning(pop): prawdopodobnie niezgodność, wyskakujące ostrzeżenie stanu wypychane w innym pliku
Ostrzeżenie kompilatora (poziom 4, wyłączony) C5032 wykryte #pragma warning(push) bez odpowiadającego #pragma warning(pop)
Ostrzeżenie kompilatora (poziom 1) C5033 Klasa magazynu nie jest już obsługiwaną klasą magazynu
Ostrzeżenie kompilatora (poziom 5, wyłączony) C5034 użycie wewnętrznego "wewnętrznego" powoduje , że nazwa funkcji jest kompilowana jako kod gościa
Ostrzeżenie kompilatora (poziom 5, wyłączony) C5035 użycie funkcji "feature" powoduje, że nazwa funkcji jest kompilowana jako kod gościa
Ostrzeżenie kompilatora (poziom 1) C5036 konwersja wskaźnika funkcji varargs podczas kompilowania z /hybrid:x86arm64 type1 na "type2"
Ostrzeżenie kompilatora (błąd) C5037 "member-function": definicja pozawierszowa elementu członkowskiego szablonu klasy nie może mieć argumentów domyślnych
Ostrzeżenie kompilatora (poziom 4, wyłączony) C5038 składowa danych "member1" zostanie zainicjowana po składowej danych "member2"
Ostrzeżenie kompilatora (poziom 4, wyłączony) C5039 "function": wskaźnik lub odwołanie do potencjalnie zgłaszającej funkcję przekazaną do extern C funkcji w obszarze -EHc. Niezdefiniowane zachowanie może wystąpić, jeśli ta funkcja zgłasza wyjątek.
Ostrzeżenie kompilatora (poziom 3) C5040 specyfikacje wyjątków dynamicznych są prawidłowe tylko w języku C++14 i starszych wersjach; traktowanie jako noexcept(false)
Ostrzeżenie kompilatora (poziom 1, wyłączony) C5041 "definicja": definicja poza wierszem dla elementu członkowskiego danych statycznych constexpr nie jest potrzebna i jest przestarzała w języku C++17
Ostrzeżenie kompilatora (poziom 3, wyłączony) C5042 "deklaracja": deklaracje funkcji w zakresie bloku nie mogą być określone jako "wbudowane" w standardowym C++; usuń specyfikator "wbudowany"
Ostrzeżenie kompilatora (poziom 2) C5043 "specyfikacja": specyfikacja wyjątku nie jest zgodna z poprzednią deklaracją
Ostrzeżenie kompilatora (poziom 4) C5044 Argument opcji opcji wiersza polecenia wskazuje ścieżkę "path-name", która nie istnieje
Ostrzeżenie kompilatora (poziom 4) C5045 Kompilator wstawi ograniczenie ryzyka spectre dla obciążenia pamięci, jeśli /Qspectre switch określony
Ostrzeżenie kompilatora (poziom 2) C5046 "function": Symbol obejmujący typ z wewnętrznym połączeniem, który nie został zdefiniowany
Ostrzeżenie kompilatora (poziom 1) C5047 używanie niezgodnych elementów __if_exists z modułami nie jest obsługiwane
Ostrzeżenie kompilatora (poziom 1) C5048 Użycie makra "macroname" może spowodować, że dane wyjściowe nie deterministyczne
Ostrzeżenie kompilatora (poziom 1) C5049 "string": Osadzanie pełnej ścieżki może spowodować, że dane wyjściowe zależne od komputera
Ostrzeżenie kompilatora (poziom 1) C5050 Możliwe niezgodne środowisko podczas importowania modułu "module_name": problem
Ostrzeżenie kompilatora (poziom 1) C5051 atrybut "attribute-name" wymaga co najmniej "standard-level"; Ignorowane
Ostrzeżenie kompilatora (poziom 3, wyłączony) C5052 Słowo kluczowe "nazwa-słowa kluczowego" zostało wprowadzone w wersji> języka C++<i wymaga użycia opcji wiersza polecenia "nazwa-opcji"
Ostrzeżenie kompilatora (poziom 1) C5053 obsługa elementu "explicit(<expr>)" w języku C++17 i starszych jest rozszerzeniem dostawcy
Ostrzeżenie kompilatora (poziom 4) C5054 operator "operator-name": przestarzałe między wyliczeniami różnych typów
Ostrzeżenie kompilatora (poziom 1) C5055 operator "operator-name": przestarzałe między wyliczeniami i typami zmiennoprzecinkowych
Ostrzeżenie kompilatora (poziom 1) C5056 operator "operator-name": przestarzały dla typów tablic
Ostrzeżenie kompilatora (poziom 1) C5057 odwołanie do jednostki nagłówka do nazwy już istnieje. Ignorowanie jednostki nagłówka "header-name"
Ostrzeżenie kompilatora (poziom 1) C5058 błąd systemu plików: nie można odnaleźć pliku nagłówka "file-name" dla jednostki nagłówka "unit-name"
Ostrzeżenie kompilatora C5059 Testy środowiska uruchomieniowego i moduł oczyszczania adresów nie są obecnie obsługiwane — wyłączanie kontroli środowiska uruchomieniowego
Ostrzeżenie kompilatora (poziom 4) C5060 /Qpar i nieobsługiwany obecnie moduł oczyszczania adresów — wyłączanie automatycznego przetwarzania równoległego
Ostrzeżenie kompilatora (poziom 4) C5061 użycie operatora przecinka jako wyrażenia indeksu dolnego zostało uznane za przestarzałe
Ostrzeżenie kompilatora (poziom 4) C5062 Inicjowanie listy bezpośredniej wyliczenia między "type-1" i "type-2" nie jest już obsługiwane
Ostrzeżenie kompilatora (poziom 1) C5063 Wyrażenie "std::is_constant_evaluated" zawsze daje wartość true w wyrażeniach obliczanych na stałe
Ostrzeżenie kompilatora (poziom 1) C5072 Usługa ASAN jest włączona bez emisji informacji debugowania. Włącz informacje debugowania, aby uzyskać lepsze raportowanie błędów usługi ASAN
Ostrzeżenie kompilatora (poziom 1) C5081 Bezpieczne na gorąco nie jest obsługiwane w przypadku , /FASTGENPROFILE lub /LTCG:PGI, wyłączając bezpieczną /GENPROFILEpoprawkę.
Ostrzeżenie kompilatora (poziom 1) C5100 __VA_ARGS__ jest zarezerwowana do użytku w makrach wariadycznych
Ostrzeżenie kompilatora (poziom 1) C5101 używanie dyrektywy preprocesora na liście argumentów makr przypominających funkcję jest niezdefiniowane zachowanie
Ostrzeżenie kompilatora (poziom 1) C5102 Ignorowanie nieprawidłowej definicji makr wiersza polecenia "value"
Ostrzeżenie kompilatora (poziom 1) C5103 wklejanie tokenu "token1" i "token2" nie powoduje prawidłowego tokenu przetwarzania wstępnego
Ostrzeżenie kompilatora (poziom 1) C5104 znaleziono ciąg1# ciąg2 na liście zastępczej makra, czy oznaczasz ciąg1""# ciąg2?
Ostrzeżenie kompilatora (poziom 1) C5105 Rozszerzenie makr tworzące "zdefiniowane" ma niezdefiniowane zachowanie
Ostrzeżenie kompilatora (poziom 1) C5106 makro ponownie zdefiniowane z różnymi nazwami parametrów
Ostrzeżenie kompilatora (poziom 1) C5107 brak znaku "char" kończącego
Ostrzeżenie kompilatora (poziom 1) C5108 __VA_OPT__ jest zarezerwowana do użytku w makrach wariadycznych
Ostrzeżenie kompilatora (poziom 1) C5109 __VA_OPT__ użycie w makrze wymaga ciągu "/Zc:preprocessor"
Ostrzeżenie kompilatora (poziom 4, wyłączony) C5110 __VA_OPT__ jest rozszerzeniem przed C++20 lub C23

Zobacz też

Błędy i ostrzeżenia kompilatora C/C++ i narzędzi kompilacji
Ostrzeżenia kompilatora C4000 — C5999