Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
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