C++ Core Guidelines referenčních kontrol

Tato část obsahuje C++ Core Guidelines checkeru. Informace o Code Analysis najdete v tématu (Code Analysis) a rychlé zprovoznění: Code Analysis pro C/C++.

Poznámka

Některá upozornění patří do více než jedné skupiny a ne všechna upozornění mají úplné referenční téma.

OWNER_POINTER skupiny

C26402 DONT_HEAP_ALLOCATE_MOVABLE_RESULT
Pokud má objekt přesunutí konstruktor, vrátí místo přidělené haldy objekt s vymezenou oborem. Viz C++ Core Guidelines R.3.

C26403 RESET_OR_DELETE_OWNER
Resetujte nebo explicitně odstraňte < proměnnou ukazatele T >< Viz C++ Core Guidelines R.3.

C26404 DONT_DELETE_INVALID
Odstraňte vlastníka <> T, který může být v neplatném stavu. Viz C++ Core Guidelines R.3.

C26405 DONT_ASSIGN_TO_VALID
Nepřiřazovat vlastníkovi <> T, který může být v platném stavu. Viz C++ Core Guidelines R.3.

C26406 DONT_ASSIGN_RAW_TO_OWNER
Nepřiřazovat nezpracovaný ukazatel vlastníkovi < T > . Viz C++ Core Guidelines R.3.

C26407 DONT_HEAP_ALLOCATE_UNNECESSARILY
Upřednostňovat vymezené objekty, zbytečně nepřidělovat haldu. Viz C++ Core Guidelines R.5.

C26429 USE_NOTNULL
Symbol 'symbol' není nikdy testován na hodnotu null, lze ji označit jako not_null. Viz C++ Core Guidelines F.23.

C26430 TEST_ON_ALL_PATHS
Symbol 'symbol' není testován na hodnotu null na všech cestách. Viz C++ Core Guidelines F.23.

C26431 DONT_TEST_NOTNULL
Typ výrazuexpruž je gsl::not_null. Testujte hodnotu null. Viz C++ Core Guidelines F.23.

RAW_POINTER skupiny

C26400 NO_RAW_POINTER_ASSIGNMENT
Nepřiřazování výsledku přidělení nebo volání funkce s návratovou hodnotou T vlastníka k nezpracovanému ukazateli; místo toho <> použijte <> vlastníka T. Viz C++ Core Guidelines I.11.

C26401 DONT_DELETE_NON_OWNER
Neodstraňovat nezpracovaný ukazatel, který není vlastníkem < T > . Viz C++ Core Guidelines I.11.

C26402 DONT_HEAP_ALLOCATE_MOVABLE_RESULT
Pokud má objekt přesunutí konstruktor, vrátí místo přidělené haldy objekt s vymezenou oborem. Viz C++ Core Guidelines R.3.

C26408 NO_MALLOC_FREE
Vyhněte se pomocí funkce obchádky () a free(), upřednostňujte novou verzi nothrow s příkazem delete. Viz C++ Core Guidelines R.10.

C26409 NO_NEW_DELETE
Vyhněte se explicitnímu volání new a delete, použijte místo make_unique std::make_unique <> T. Viz C++ Core Guidelines R.11.

C26429 USE_NOTNULL
Symbol 'symbol' není nikdy testován na hodnotu null, lze ji označit jako not_null. Viz C++ Core Guidelines F.23.

C26430 TEST_ON_ALL_PATHS
Symbol 'symbol' není testován na hodnotu null na všech cestách. Viz C++ Core Guidelines F.23.

C26431 DONT_TEST_NOTNULL
Typ výrazuexpruž je gsl::not_null. Testujte hodnotu null. Viz C++ Core Guidelines F.23.

C26481 NO_POINTER_ARITHMETIC
Nepoužívejte aritmetické operace ukazatele. Místo toho použijte span. Viz C++ Core Guidelines Bounds.1.

C26485 NO_ARRAY_TO_POINTER_DECAY
Výrazexpr': Žádné pole pro upadající ukazatel. Viz C++ Core Guidelines Bounds.3.

UNIQUE_POINTER skupiny

C26410 NO_REF_TO_CONST_UNIQUE_PTR
Parametr 'parametr 'jeodkazem na jedinečný ukazatel, místo toho použijte const T* nebo const & T. Viz C++ Core Guidelines R.32.

C26411 NO_REF_TO_UNIQUE_PTR
Parametr'parametr' je odkazem na jedinečný ukazatel a nikdy není znovu přiřazen nebo resetován, místo toho použijte T* nebo T. Viz C++ Core Guidelines R.33.

C26414 RESET_LOCAL_SMART_PTR
Přesuňte, zkopírujte, znovu přiřazení nebo resetujte místní symbol inteligentníhoukazatele. Viz C++ Core Guidelines R.5.

C26415 SMART_PTR_NOT_NEEDED
Parametr inteligentního ukazatelesymbol sepoužívá pouze pro přístup k obsaženému ukazateli. Použijte místo toho T* nebo & T. Viz C++ Core Guidelines R.30.

SHARED_POINTER skupiny

C26414 RESET_LOCAL_SMART_PTR
Přesuňte, zkopírujte, znovu přiřazení nebo resetujte místní symbol inteligentníhoukazatele. Viz C++ Core Guidelines R.5.

C26415 SMART_PTR_NOT_NEEDED
Parametr inteligentního ukazatelesymbol sepoužívá pouze pro přístup k obsaženému ukazateli. Použijte místo toho T* nebo & T. Viz C++ Core Guidelines R.30.

C26416 NO_RVALUE_REF_SHARED_PTR
Sdílený parametr ukazatele' symbol' je předán odkazem rvalue. Místo toho předejte hodnotu by. Viz C++ Core Guidelines R.34.

C26417 NO_LVALUE_REF_SHARED_PTR
Sdílený parametr ukazatele' symbol' je předán odkazem a není resetován nebo znovu přiřazen. Použijte místo toho T* nebo & T. Viz C++ Core Guidelines R.35.

C26418 NO_VALUE_OR_CONST_REF_SHARED_PTR
Sdílený parametr ukazatele 'symbol' není zkopírován ani přesunut. Místo toho použijte T * nebo T & . Viz C++ Core Guidelines R. 36.

Skupina DEKLARACÍ

C26426 NO_GLOBAL_INIT_CALLS
Globální inicializátor volá funkci unconstexpr (symbol), která není constexpr. Viz C++ Core Guidelines I. 22.

C26427 NO_GLOBAL_INIT_EXTERNS
Globální inicializátor přistupuje k externímu objektusymbol. Viz C++ Core Guidelines I. 22.

C26444 NO_UNNAMED_RAII_OBJECTS
Nepoužívejte nepojmenované objekty s vlastní konstrukcí a destrukcí. Viz ES. 84: nejde (zkusit) deklarovat místní proměnnou bez názvu.

Skupina tříd

C26432 DEFINE_OR_DELETE_SPECIAL_OPS
Pokud definujete nebo odstraníte jakoukoli výchozí operaci v typusymbol, definujte nebo odstraňte všechny. Viz C++ Core Guidelines C. 21.

C26433 OVERRIDE_EXPLICITLY
Funkcesymbolby měla být označená klíčovým slovem override. Viz C. 128: virtuální funkce by měly zadat přesně jednu z funkcí Virtual, override nebo Final.

C26434 DONT_HIDE_METHODS
Funkcesymbol_1skrývá nevirtuální funkcisymbol_2. Viz C++ Core Guidelines C. 128.

C26435 SINGLE_VIRTUAL_SPECIFICATION
Funkce 'symbol' by měla určovat právě jedno z ' Virtual ', ' override ' nebo ' Final '. Viz C. 128: virtuální funkce by měly zadat přesně jednu z funkcí Virtual, override nebo Final.

C26436 NEED_VIRTUAL_DTOR
Typsymbols virtuální funkcí potřebuje buď veřejný virtuální, nebo chráněný nevirtuální destruktor. Viz C++ Core Guidelines C. 35.

C26443 NO_EXPLICIT_DTOR_OVERRIDE
Při přepisování destruktoru by se neměl používat explicitní specifikátor override nebo Virtual. Viz C. 128: virtuální funkce by měly zadat přesně jednu z funkcí Virtual, override nebo Final.

Skupina stylů

C26438 NO_GOTO
Vyhněte se goto . Viz C++ Core GUIDELINES ES. 76.

Skupina funkcí

C26439 SPECIAL_NOEXCEPT
Tento druh funkce nemůže vyvolat výjimku. Deklarujte ji noexcept . Viz C++ Core Guidelines F. 6.

C26440 DECLARE_NOEXCEPT
Funkce 'symbol' může být deklarována . Viz C++ Core Guidelines F. 6.

C26447 DONT_THROW_IN_NOEXCEPT
Funkce je deklarována, noexcept ale volá funkci, která může vyvolat výjimky. Viz C++ Core Guidelines: F. 6: Pokud funkce nemůže vyvolat throw, deklarujte ji s výjimkou.

Skupina SOUBĚŽNosti

C26441 NO_UNNAMED_GUARDS
Objekty Guard musí mít název. Viz C++ Core Guidelines CP. 44.

Skupina CONSt

C26460 USE_CONST_REFERENCE_ARGUMENTS
Argument odkazu 'argument'funkce ' function' lze označit jako . Viz C++ Core Guidelines con. 3.

C26461 USE_CONST_POINTER_ARGUMENTS:
Argument ukazatele "argument"funkce "Function" lze označit jako ukazatel na . Viz C++ Core Guidelines con. 3.

C26462 USE_CONST_POINTER_FOR_VARIABLE
Hodnota, na kterou ukazujeProměnná, je přiřazená pouze jednou, označte ji jako ukazatel na . Viz C++ Core Guidelines con. 4.

C26463 USE_CONST_FOR_ELEMENTS
Prvkypole Array jsoupřiřazeny pouze jednou, označte prvky . Viz C++ Core Guidelines con. 4.

C26464 USE_CONST_POINTER_FOR_ELEMENTS
Hodnoty, na které ukazují prvkypole Array,jsou přiřazené pouze jednou, označte prvky jako ukazatel na . Viz C++ Core Guidelines con. 4.

C26496 USE_CONST_FOR_VARIABLE
Proměnná 'Variable' je přiřazena pouze jednou, označte ji jako . Viz C++ Core Guidelines con. 4.

C26497 USE_CONSTEXPR_FOR_FUNCTION
Tato funkce Function by mohla být označena , pokud je požadováno vyhodnocení v době kompilace. Viz C++ Core Guidelines F. 4.

C26498 USE_CONSTEXPR_FOR_FUNCTIONCALL
Tato funkce volání funkce může být použita , pokud je požadováno vyhodnocení v době kompilace. Viz C++ Core Guidelines con. 5.

Skupina typů

C26437 DONT_SLICE
Nevytvářejte řezy. Viz C++ Core GUIDELINES ES. 63.

C26465 NO_CONST_CAST_UNNECESSARY
Nepoužívejte const_cast k přetypování const . const_cast není vyžadováno; v tomto převodu se neodebírá const nebo nestálost. Viz C++ Core Guidelines Type. 3.

C26466 NO_STATIC_DOWNCAST_POLYMORPHIC
Nepoužívejte static_cast dolů. Přetypování z polymorfního typu by mělo používat dynamic_cast. Viz C++ Core Guidelines Type. 2.

C26471 NO_REINTERPRET_CAST_FROM_VOID_PTR
Nepoužívejte reinterpret_cast . Přetypování z void * může používat static_cast . Viz C++ Core Guidelines typ. 1.

C26472 NO_CASTS_FOR_ARITHMETIC_CONVERSION
Nepoužívejte static_cast pro aritmetické převody. Použijte inicializaci složené závorky, GSL:: narrow_cast nebo GSL:: Narrow. Viz C++ Core Guidelines typ. 1.

C26473 NO_IDENTITY_CAST
Nepoužívejte přetypování mezi typy ukazatelů, přičemž zdrojový typ a cílový typ jsou stejné. Viz C++ Core Guidelines typ. 1.

C26474 NO_IMPLICIT_CAST
Nepoužívejte přetypování mezi typy ukazatelů, když převod může být implicitní. Viz C++ Core Guidelines typ. 1.

C26475 NO_FUNCTION_STYLE_CASTS
Nepoužívejte přetypování funkcí stylu C. Viz C++ Core GUIDELINES ES. 49.

C26490 NO_REINTERPRET_CAST
Nepoužívejte reinterpret_cast . Viz C++ Core Guidelines typ. 1.

C26491 NO_STATIC_DOWNCAST
Nepoužívejte static_cast dolů. Viz C++ Core Guidelines Type. 2.

C26492 NO_CONST_CAST
Nepoužívejte const_cast k přetypování const . Viz C++ Core Guidelines Type. 3.

C26493 NO_CSTYLE_CAST
Nepoužívejte přetypování ve stylu jazyka C. Viz C++ Core Guidelines Type. 4.

C26494 VAR_USE_BEFORE_INIT
Proměnná 'Variable' je neinicializovaná. Vždy Inicializujte objekt. Viz C++ Core Guidelines Type. 5.

C26495 MEMBER_UNINIT
Proměnná 'Variable' je neinicializovaná. Vždy inicializujte členskou proměnnou. Viz C++ Core Guidelines Type. 6.

Skupina vazeb

C26446 USE_GSL_AT
Raději použijte místo nekontrolovaného gsl::at() operátoru dolního indexu. Viz C++ Core Guidelines: Bounds. 4: Nepoužívejte funkce a typy standardní knihovny, které nejsou zaškrtnuty.

C26481 NO_POINTER_ARITHMETIC
Nepoužívejte aritmetický ukazatel. Místo toho použijte rozpětí. Viz C++ Core Guidelines meze. 1

C26482 NO_DYNAMIC_ARRAY_INDEXING
Indexujte pole pouze pomocí konstantních výrazů. Viz C++ Core Guidelines hranice. 2

C26483 STATIC_INDEX_OUT_OF_RANGE
Hodnota hodnoty je mimo hranice (0, hranice) proměnné 'Variable'. Indexujte pole pouze pomocí konstantních výrazů, které jsou uvnitř mezí pole. Viz C++ Core Guidelines hranice. 2

C26485 NO_ARRAY_TO_POINTER_DECAY
Výrazexpr: žádné pole pro ukazatel Decay. Viz C++ Core Guidelines hranice. 3

Skupina GSL

C26445 NO_SPAN_REF
Odkaz na gsl::span nebo std::string_view může být známkou problému s dobou života. Viz C++ Core GUIDELINES GSL. View: zobrazení

C26446 USE_GSL_AT
Raději použijte místo nekontrolovaného gsl::at() operátoru dolního indexu. Viz C++ Core Guidelines: Bounds. 4: Nepoužívejte funkce a typy standardní knihovny, které nejsou zaškrtnuty.

C26448 USE_GSL_FINALLY
Zvažte použití gsl::finally , pokud je konečná akce určena. Viz C++ Core Guidelines: GSL. util: Utilities.

C26449 NO_SPAN_FROM_TEMPORARY
gsl::span nebo std::string_view vytvořené z dočasného typu budou neplatné při zrušení platnosti dočasného údaje. Viz C++ Core Guidelines: GSL. View: zobrazení.

Zastaralá upozornění

Následující upozornění jsou k dispozici v prvotní experimentální sadě pravidel pro kontrolu základních pokynů, ale nyní jsou zastaralé a je možné je bezpečně ignorovat. Upozornění jsou nahrazena upozorněními ze seznamu výše.

  • 26412 DEREF_INVALID_POINTER
  • 26413 DEREF_NULLPTR
  • 26420 ASSIGN_NONOWNER_TO_EXPLICIT_OWNER
  • 26421 ASSIGN_VALID_OWNER
  • 26422 VALID_OWNER_LEAVING_SCOPE
  • 26423 ALLOCATION_NOT_ASSIGNED_TO_OWNER
  • 26424 VALID_ALLOCATION_LEAVING_SCOPE
  • 26425 ASSIGNING_TO_STATIC
  • 26499 NO_LIFETIME_TRACKING

Viz také

Používání C++ Core Guidelinesových kontrol