Udostępnij przez


Ostrzeżenia kompilatora Microsoft C/C++ od C5200 do C5399

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

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 (poziom 1) C5200 funkcja "feature-name" wymaga flagi kompilatora "option-name"
Ostrzeżenie kompilatora (poziom 1) C5201 deklaracja modułu może być wyświetlana tylko na początku jednostki tłumaczenia, chyba że jest używany fragment modułu globalnego
Ostrzeżenie kompilatora (poziom 1) C5202 fragment modułu globalnego może zawierać tylko dyrektywy preprocesora
Ostrzeżenie kompilatora (poziom 1) C5203 nazwa deklaratora nawiasu po "jawnym" będzie traktowana jako specyfikator jawny w języku C++20
Ostrzeżenie kompilatora (poziom 3, wyłączony) C5204 "type-name": klasa ma funkcje wirtualne, ale jej trywialny destruktor nie jest wirtualny; wystąpienia obiektów pochodnych z tej klasy mogą nie być poprawnie zdestrukturowane
Ostrzeżenie kompilatora (poziom 4) C5205 usuwanie klasy abstrakcyjnej "type-name", która ma niezdefiniowany destruktor, powoduje niezdefiniowane zachowanie
Ostrzeżenie kompilatora (poziom 3) C5206 dedukowane typy zwracane dla coroutines jest nietypowym rozszerzeniem
Ostrzeżenie kompilatora (poziom 1) C5207 proste wymaganie potwierdza ważność wyrażenia "e->id". Czy masz na myśli "{ e } -> id"? Ostrzeżenie można pominąć przy użyciu polecenia "{ e->id }"
Ostrzeżenie kompilatora (poziom 1) C5208 nienazwana klasa używana w typedef nazwie nie może deklarować składowych innych niż niestatyczne składowe danych, wyliczenia składowe lub klasy składowe
Ostrzeżenie kompilatora (poziom 1) C5209 składnia języka C++20 dla przechwytywania init-capture została zmieniona na "& ... opt identifier initializer'
Ostrzeżenie kompilatora (poziom 1) C5210 "name" nie jest prawidłowym odwołaniem do jednostki nagłówka; ignorując
Ostrzeżenie kompilatora (poziom 1) C5212 "name" nie jest prawidłowym nazwanym odwołaniem; traktowanie go jako odwołania do pliku
Ostrzeżenie kompilatora (poziom 1) C5213 Nazwane odwołanie jest traktowane jako nazwana partycja, ale nazwa nie jest określona; traktując jako odwołanie do pliku
Ostrzeżenie kompilatora (poziom 4, wyłączony) C5214 stosowanie modyfikatora do operandu z nietrwałym typem kwalifikowanym jest przestarzałe w języku C++20
Ostrzeżenie kompilatora (poziom 4, wyłączony) C5215 "name" parametr funkcji z nietrwałym typem kwalifikowanym jest przestarzały w języku C++20
Ostrzeżenie kompilatora (poziom 4, wyłączony) C5216 "name" nietrwały kwalifikowany typ zwracany jest przestarzały w języku C++20
Ostrzeżenie kompilatora (poziom 4, wyłączony) C5217 ustrukturyzowana deklaracja powiązania, która zawiera zmienną, jest przestarzała w języku C++20
Ostrzeżenie kompilatora (poziom 1) C5218 niszczenie usunięcia może nie zachowywać się zgodnie z oczekiwaniami, gdy używane są niezgodne przełączniki "/Zc:sizedDealloc-" lub "/Zc:alignedNew-".
Ostrzeżenie kompilatora (poziom 2, wyłączony) C5219 niejawna konwersja z "type-1" na "type-2", możliwa utrata danych
Ostrzeżenie kompilatora (poziom 4, wyłączony) C5220 "name": niestatyczny element członkowski danych z nietrwałym typem kwalifikowanym nie oznacza już, że kompilator wygenerował konstruktory kopiowania/przenoszenia i operatory przypisania kopiowania/przenoszenia nie są proste
Ostrzeżenie kompilatora (poziom 1) C5221 xfg::rename jest przestarzała.
Ostrzeżenie kompilatora (poziom 3) C5222 "attribute-name": wszystkie niezakresowe nazwy atrybutów są zarezerwowane na potrzeby przyszłej standaryzacji
Ostrzeżenie kompilatora (poziom 3) C5223 wszystkie nazwy atrybutów w przestrzeni nazw atrybutów "msvc" są zarezerwowane dla implementacji
Ostrzeżenie kompilatora (poziom 3) C5224 wszystkie nazwy atrybutów w przestrzeni nazw atrybutów "namespace-name" są zarezerwowane do przyszłej standaryzacji
Ostrzeżenie kompilatora (poziom 1) C5225 "symbol": wyeksportowana funkcja śródliniowa zdefiniowana w prywatnym fragmentcie modułu jest niestandardowym rozszerzeniem
Ostrzeżenie kompilatora (poziom 1) C5226 "symbol": wyeksportowany szablon zdefiniowany w fragmentze modułu prywatnego nie ma osiągalnego wystąpienia
Ostrzeżenie kompilatora (poziom 4) C5227 niestandardowe rozszerzenie rozpoznano jako "symbol" na wartość "value", która nie jest widoczna /permissive- na.
Ostrzeżenie kompilatora (poziom 4) C5228 niestandardowe rozszerzenie "identyfikator" rozpoznane jako element członkowski zależnej bazy. To wyszukiwanie nie jest dozwolone w obszarze /permissive-.
Ostrzeżenie kompilatora (poziom 4) C5229 niestandardowe rozszerzenie, ukryta funkcja znajoma "function-name" została znaleziona przez wyszukiwanie nazw, które nie jest dozwolone w obszarze /permissive-.
Ostrzeżenie kompilatora C5230 niestandardowe rozszerzenie "identifier" zostało rozpoznane jako "symbol-1" w obszarze /permissive. W /permissive- ramach tej funkcji zostanie rozpoznana wartość "symbol-2".
Ostrzeżenie kompilatora (poziom 3) C5231 wyrażenie "co_await promise.final_suspend()" musi nie zgłaszać
Ostrzeżenie kompilatora (poziom 1) C5232 w języku C++20 to porównanie wywołuje rekursywnie "name"
Ostrzeżenie kompilatora (poziom 4, wyłączony) C5233 Jawne przechwytywanie lambda "identyfikator" nie jest używane
Ostrzeżenie kompilatora (poziom 1) C5234 błąd systemu plików: "nazwa pliku" nie jest prawidłową nazwą nagłówka; ignorowanie
Ostrzeżenie kompilatora (poziom 1) C5235 Błąd analizy JSON: komunikat; ignorowanie nazwy pliku
Ostrzeżenie kompilatora (poziom 1) C5236 JSON jest źle sformułowany: komunikat; ignorowanie nazwy pliku
Ostrzeżenie kompilatora (poziom 1) C5237 Nie można rozpoznać wpisu jednostki nagłówka "name" do pliku nagłówka w 'nazwa_pliku'; ignorując wpis
Ostrzeżenie kompilatora (poziom 1) C5238 błąd systemu plików: nie można otworzyć nazwy pliku do odczytu; ignorowanie
Ostrzeżenie kompilatora (poziom 4) C5239 "symbol": potencjalnie zgłaszana funkcja wywoływana z funkcji zadeklarowanej __declspec(nothrow)przez funkcję . Niezdefiniowane zachowanie może wystąpić, jeśli zostanie zgłoszony wyjątek.
Ostrzeżenie kompilatora (poziom 4) C5240 "attribute-name": atrybut jest ignorowany w tej pozycji składniowej
Ostrzeżenie kompilatora (poziom 1) C5241 '/exportHeader' usage to lookup header-name is przestarzałe; preferuj '/headerName:name value=nazwa_pliku'
Ostrzeżenie kompilatora (poziom 1) C5242 błąd składniowy w pragma "identifier"
Ostrzeżenie kompilatora (poziom 1, wyłączony) C5243 "type-name": użycie niekompletnej klasy "class-name" może spowodować potencjalne naruszenie reguły definicji z powodu ograniczenia usługi ABI
Ostrzeżenie kompilatora (poziom 1) C5244 Błąd "#include <nazwa pliku>" w widoku purview modułu "module-name-1". Rozważ przeniesienie tej dyrektywy przed deklaracją modułu lub zastąpienie dołączania tekstowego ciągiem "import <module-name-2>;".
Ostrzeżenie kompilatora (poziom 4, wyłączony) C5245 "function": funkcja niereferencja z wewnętrznym połączeniem została usunięta
Ostrzeżenie kompilatora (poziom 1, wyłączony) C5246 "member": inicjowanie podobiektu powinno być opakowane w nawiasy klamrowe
Ostrzeżenie kompilatora (poziom 1, wyłączony) C5247 sekcja "section-name" jest zarezerwowana dla inicjowania dynamicznego języka C++. Ręczne tworzenie sekcji zakłóca inicjowanie dynamiczne języka C++ i może prowadzić do niezdefiniowanego zachowania
Ostrzeżenie kompilatora (poziom 1, wyłączony) C5248 sekcja "section-name" jest zarezerwowana dla inicjowania dynamicznego języka C++. Zmienne wprowadzone ręcznie do sekcji mogą być zoptymalizowane, a ich kolejność względem kompilatora wygenerowanych dynamicznych inicjatorów jest nieokreślona.
Ostrzeżenie kompilatora (poziom 1, wyłączony) C5249 Pole bitowe typu "enumeration_name" ma nazwane moduły wyliczające o wartościach, których nie można przedstawić w danej szerokości pola bitowego "bitfield_width".
Ostrzeżenie kompilatora (poziom 3, wyłączony) C5250 "function_name": funkcja wewnętrzna nie jest zadeklarowana.
Ostrzeżenie kompilatora (poziom 4, wyłączony) C5251 nazwa segmentu została zmieniona po dodaniu nagłówka
Ostrzeżenie kompilatora (poziom 4) C5252 Wiele różnych typów spowodowało, że ten sam skrót typu XFG hash-value; pdB będzie rejestrować tylko informacje dla jednego z nich
Ostrzeżenie kompilatora (poziom 4) C5253 nie lokalna lambda nie może mieć wartości domyślnej przechwytywania
Ostrzeżenie kompilatora (poziom 4, wyłączony) C5254 Funkcja języka "terse static assert" wymaga flagi kompilatora "/std:c++17"
Ostrzeżenie kompilatora (poziom 3) C5255 napotkano nieokreślony znak dwukierunkowy: "U+XXXX"
Ostrzeżenie kompilatora (poziom 1, wyłączony) C5256 "wyliczenie": deklaracja niezdefiniowania wyliczenia ze stałym typem bazowym jest dozwolona tylko jako deklaracja autonomiczna
Ostrzeżenie kompilatora (poziom 1 lub 4) C5257 "wyliczenie": wyliczenie zostało wcześniej zadeklarowane bez stałego typu bazowego
Ostrzeżenie kompilatora (poziom 4, wyłączony) C5258 jawne przechwytywanie symbolu nie jest wymagane do tego użycia
Ostrzeżenie kompilatora (poziom 4, wyłączony) C5259 "wyspecjalizowany typ": jawna specjalizacja wymaga "szablonu <>"
Ostrzeżenie kompilatora (poziom 1) C5260 zmienna stała "nazwa-zmiennej" ma wewnętrzne połączenie w dołączonym kontekście pliku nagłówka, ale zewnętrzne połączenie w kontekście zaimportowanej jednostki nagłówka; rozważ zadeklarowanie jej jako "wbudowanej", a także jeśli zostanie ona udostępniona między jednostkami tłumaczenia lub "statycznymi", aby wyrazić zamiar użycia go lokalnego do tej jednostki tłumaczenia
Ostrzeżenie kompilatora (poziom 2) C5261 żaden typ liczby całkowitej nie może reprezentować wszystkich wartości modułu wyliczającego w wyliczenie "enum-name"
Ostrzeżenie kompilatora (poziom 1, błąd, wyłączanie) C5262 występuje tutaj niejawny upadek; czy brakuje instrukcji break? Użyj [[fallthrough]] , gdy break instrukcja jest celowo pomijana między przypadkami
Ostrzeżenie kompilatora (poziom 4, wyłączony) C5263 wywoływanie elementu "std::move" w obiekcie tymczasowym uniemożliwia kopiowanie elizji
Ostrzeżenie kompilatora (poziom 4, wyłączony) C5264 "nazwa-zmiennej": zmienna "const" nie jest używana
Ostrzeżenie kompilatora (poziom 1) C5265 Program nie może otworzyć ścieżki wyszukiwania "path"
Ostrzeżenie kompilatora (poziom 4, wyłączony) C5266 Kwalifikator "const" w typie zwrotnym nie ma wpływu
Ostrzeżenie kompilatora C5267 definicja niejawnego konstruktora/operatora przypisania dla "typu" jest przestarzała, ponieważ ma operatora przypisania dostarczonego przez użytkownika/konstruktora kopiowania
Ostrzeżenie kompilatora (poziom 1) C5268 Nie można przydzielić pamięci pod stałym adresem 0x. Użyj /Yb polecenia , aby określić określoną bazę adresów, jeśli wymagane są pliki pch identyczne bitowo.
Ostrzeżenie kompilatora (poziom 1) C5269 Nie można przydzielić pamięci PCH pod stałym adresem 0x. Użyj /Ym polecenia , aby określić określoną bazę adresów, jeśli wymagane są pliki pch identyczne bitowo.
Ostrzeżenie kompilatora (poziom 3) C5270 Wartość "value" nie jest dozwolona dla opcji "switch name"; dozwolone wartości to: lista wartości
Ostrzeżenie kompilatora (poziom 4) C5271 wcześniej zaimportowany zestaw "assembly1" ma taką samą nazwę jak importowany zestaw "assembly2". Czy jest to zamierzone?
Ostrzeżenie kompilatora (poziom 1) C5272 zgłaszanie obiektu typu nie kopiowalnego typu "typ" jest nietypowe. Jeśli kopia jest potrzebna w czasie wykonywania, zostanie wykonana tak, jakby przez memcpy.
Ostrzeżenie kompilatora (poziom 1) C5273 zmiana zachowania: _Alignas w przypadku typu anonimowego nie są już ignorowane (promowane elementy członkowskie będą wyrównane)
Ostrzeżenie kompilatora (poziom 1) C5274 zmiana zachowania: _Alignas nie ma już zastosowania do typu "typ" (dotyczy tylko zadeklarowanych obiektów danych)
Ostrzeżenie kompilatora (błąd) C5275 Zestaw fasady "name" importowany w obszarze "/clr"; brakuje opcji "/clr:netcore"?
Ostrzeżenie kompilatora (poziom 1, błąd) C5300 '#pragma niepodzielne': lewy operand operatora musi być zgodny z lewą stroną wyrażenia przypisania
Ostrzeżenie kompilatora (poziom 1) C5301 "#pragma omp for": "loop-index" zwiększa się, podczas gdy warunek pętli używa wartości "comparison"; non-terminating loop?
Ostrzeżenie kompilatora (poziom 1) C5302 "#pragma omp for": "loop-index" zmniejsza się, podczas gdy warunek pętli używa "porównania"; pętla niezwiązana z kończeniem?
Ostrzeżenie kompilatora (poziom 1) C5303 funkcja oznaczona za pomocą [[msvc::intrinsic]] polecenia nie powodowała rzutu bez operacji
Ostrzeżenie kompilatora (poziom 1) C5304 deklaracja wyznaczona przy użyciu deklaracji "name1" wyeksportowana z tego modułu ma połączenie wewnętrzne i używa takiej nazwy poza modułem jest źle sformułowana; rozważ zadeklarowanie "name2" doinline użycia poza tym modułem
Ostrzeżenie kompilatora (poziom 1) C5305 "name": jawna deklaracja wystąpienia zgodna z jawną definicją wystąpienia jest ignorowana

Zobacz też

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