Sdílet prostřednictvím


Referenční informace ke kontrole C++ Core Guidelines

Tato část obsahuje upozornění nástroje C++ Core Guidelines Checker. Informace o analýze kódu najdete v tématu /analyze (Analýza kódu) a Rychlý start: Analýza kódu pro C/C++.

Poznámka:

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

skupina OWNER_POINTER

C26402 DONT_HEAP_ALLOCATE_MOVABLE_RESULT
Pokud má konstruktor přesunutí, vrátí objekt s vymezeným oborem místo haldy. Viz C++ Core Guidelines R.3.

C26403 RESET_OR_DELETE_OWNER
Resetujte nebo explicitně odstraňte ukazatel T ukazatele vlastníka<T> proměnné. Viz C++ Core Guidelines R.3.

C26404 DONT_DELETE_INVALID
Neodstraňovat 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řaďte vlastníka<T> , který může být v platném stavu. Viz C++ Core Guidelines R.3.

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

C26407 DONT_HEAP_ALLOCATE_UNNECESSARILY
Upřednostňujte objekty s vymezeným oborem, nevydělujte zbytečně haldu. Viz C++ Core Guidelines R.5.

C26429 USE_NOTNULL
Symbol 'symbol' není nikdy testován na hodnotu null, může být označen jako not_null. Viz C++ Core Guidelines F.23.

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

C26431 DONT_TEST_NOTNULL
Typ výrazu výraz 'expr' je již gsl::not_null. Neotestujte ji na hodnotu null. Viz C++ Core Guidelines F.23.

skupina RAW_POINTER

C26400 NO_RAW_POINTER_ASSIGNMENT
Nepřiřazujte výsledek přidělení nebo volání funkce s návratovou hodnotou vlastníka<T> 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á konstruktor přesunutí, vrátí objekt s vymezeným oborem místo haldy. Viz C++ Core Guidelines R.3.

C26408 NO_MALLOC_FREE
Vyhněte se malloc() a free(), preferujte nehrow verzi nového s odstraněním. Viz C++ Core Guidelines R.10.

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

C26429 USE_NOTNULL
Symbol 'symbol' není nikdy testován na hodnotu null, může být označen jako not_null. Viz C++ Core Guidelines F.23.

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

C26431 DONT_TEST_NOTNULL
Typ výrazu výraz 'expr' je již gsl::not_null. Neotestujte ji na hodnotu null. Viz C++ Core Guidelines F.23.

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

C26485 NO_ARRAY_TO_POINTER_DECAY
Výraz výraz 'výraz': Žádné pole, které by se rozložily ukazatelem. Viz omezení rozhraní C++ Core Guidelines Bounds.3.

skupina UNIQUE_POINTER

C26410 NO_REF_TO_CONST_UNIQUE_PTR
Parametr 'parameter' je odkaz na const 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 "parameter" je odkazem na jedinečný ukazatel a nikdy se nepřeřadí nebo resetuje, 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řaďte nebo resetujte místní inteligentní ukazatel "symbol". Viz C++ Core Guidelines R.5.

C26415 SMART_PTR_NOT_NEEDED
Parametr inteligentního ukazatele "symbol" se používá pouze pro přístup k obsaženému ukazateli. Místo toho použijte T* nebo T&. Viz C++ Core Guidelines R.30.

skupina SHARED_POINTER

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

C26415 SMART_PTR_NOT_NEEDED
Parametr inteligentního ukazatele "symbol" se používá pouze pro přístup k obsaženému ukazateli. Místo toho použijte T* nebo T&. Viz C++ Core Guidelines R.30.

C26416 NO_RVALUE_REF_SHARED_PTR
Parametr sdíleného ukazatele "symbol" se předává odkazem na hodnotu rvalue. Místo toho předejte hodnotu. Viz C++ Core Guidelines R.34.

C26417 NO_LVALUE_REF_SHARED_PTR
Parametr sdíleného ukazatele "symbol" se předává odkazem a neobnovuje se ani znovu nepřiřazuje. Místo toho použijte T* nebo T&. Viz C++ Core Guidelines R.35.

C26418 NO_VALUE_OR_CONST_REF_SHARED_PTR
Parametr sdíleného ukazatele "symbol" se nezkopíruje ani nepřesune. Místo toho použijte T* nebo T&. Viz C++ Core Guidelines R.36.

SKUPINA DEKLARACE

C26426 NO_GLOBAL_INIT_CALLS
Globální inicializátor volá funkci bez constexpr "symbol". Viz C++ Core Guidelines I.22.

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

C26444 NO_UNNAMED_RAII_OBJECTS
Vyhněte se nepojmenovaným objektům s vlastní konstrukcí a zničením. Viz ES.84: Nepokoušejte se deklarovat místní proměnnou bez názvu.

Skupina CLASS

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

C26433 OVERRIDE_EXPLICITLY
Funkce "symbol" by měla být označena "override". Viz C.128: Virtuální funkce by měly určovat přesně jednu z virtuálních, přepsání nebo konečných funkcí.

C26434 DONT_HIDE_METHODS
Funkce symbol_1 skryje ne virtuální funkci symbol_2. Viz C++ Core Guidelines C.128.

C26435 SINGLE_VIRTUAL_SPECIFICATION
Funkce "symbol" by měla přesně určit jednu z "virtuálních", "override" nebo "final". Viz C.128: Virtuální funkce by měly určovat přesně jednu z virtuálních, přepsání nebo konečných funkcí.

C26436 NEED_VIRTUAL_DTOR
Typ "symbol" s virtuální funkcí potřebuje buď veřejný virtuální, nebo chráněný ne-virtuální destruktor. Viz C++ Core Guidelines C.35.

C26443 NO_EXPLICIT_DTOR_OVERRIDE
Přepsání destruktoru by nemělo používat explicitní specifikátory override ani virtual. Viz C.128: Virtuální funkce by měly určovat přesně jednu z virtuálních, přepsání nebo konečných funkcí.

SKUPINA STYLE

C26438 NO_GOTO
Nepoužívejte goto. Viz C++ Core Guidelines ES.76.

SKUPINA FUNCTION

C26439 SPECIAL_NOEXCEPT
Tento druh funkce nemusí vyvolat. Deklarujte jej noexcept. Viz C++ Core Guidelines F.6.

C26440 DECLARE_NOEXCEPT
Funkci "symbol" lze deklarovat noexcept. 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 se vaše funkce nemusí vyvolat, deklarujte ji noexcept.

SKUPINA CONCURRENCY

C26441 NO_UNNAMED_GUARDS
Objekty ochrany musí být pojmenovány. Viz C++ Core Guidelines cp.44.

CONST Group

C26460 USE_CONST_REFERENCE_ARGUMENTS
Argument odkazu pro funkci "function" lze označit jako const. Viz C++ Core Guidelines con.3.

C26461 USE_CONST_POINTER_ARGUMENTS:
Argument ukazatele pro funkci function 'function' lze označit jako ukazatel na const. Viz C++ Core Guidelines con.3.

C26462 USE_CONST_POINTER_FOR_VARIABLE
Hodnota odkazovaná na proměnnou je přiřazena pouze jednou, označte ji jako ukazatel na const. Viz C++ Core Guidelines con.4.

C26463 USE_CONST_FOR_ELEMENTS
Prvky pole "matice" jsou přiřazeny pouze jednou, označit prvky const. Viz C++ Core Guidelines con.4.

C26464 USE_CONST_POINTER_FOR_ELEMENTS
Hodnoty odkazované na prvky pole "matice" jsou přiřazeny pouze jednou, označte prvky jako ukazatel na const. Viz C++ Core Guidelines con.4.

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

C26497 USE_CONSTEXPR_FOR_FUNCTION
Tato funkce může být označenaconstexpr, pokud je požadované vyhodnocení doby kompilace. Viz C++ Core Guidelines F.4.

C26498 USE_CONSTEXPR_FOR_FUNCTIONCALL
Tato funkce volání funkce může použítconstexpr, pokud je žádoucí vyhodnocení doby kompilace. Viz C++ Core Guidelines con.5.

Skupina TYPE

C26437 DONT_SLICE
Neprokrývejte. Viz C++ Core Guidelines ES.63.

C26465 NO_CONST_CAST_UNNECESSARY
Nepoužívejte const_cast k vyhodování const. const_cast není vyžadováno; constness nebo nestálost není tímto převodem odebrána. Viz C ++ Core Guidelines Type.3.

C26466 NO_STATIC_DOWNCAST_POLYMORPHIC
Nepoužívejte static_cast downcasty. 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žít static_cast. Viz C++ Core Guidelines Type.1.

C26472 NO_CASTS_FOR_ARITHMETIC_CONVERSION
Nepoužívejte static_cast aritmetické převody. Použijte inicializaci závorek, gsl::narrow_cast nebo gsl::narrow. Viz C++ Core Guidelines Type.1.

C26473 NO_IDENTITY_CAST
Nepřetypovávejte mezi typy ukazatelů, kde je typ zdroje a cílový typ stejné. Viz C++ Core Guidelines Type.1.

C26474 NO_IMPLICIT_CAST
Nepřetypovávejte mezi typy ukazatelů, pokud by převod mohl být implicitní. Viz C++ Core Guidelines Type.1.

C26475 NO_FUNCTION_STYLE_CASTS
Nepoužívejte přetypování ve stylu funkce C. Viz C++ Core Guidelines ES.49.

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

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

C26492 NO_CONST_CAST
Nepoužívejte const_cast k vyhodová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á proměnná proměnná není inicializována. Vždy inicializovat objekt. Viz C++ Core Guidelines Type.5.

C26495 MEMBER_UNINIT
Proměnná proměnná proměnná není inicializována. Vždy inicializovat členovou proměnnou. Viz C++ Core Guidelines Type.6.

Skupina BOUNDS

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

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

C26482 NO_DYNAMIC_ARRAY_INDEXING
Indexování do polí pomocí konstantních výrazů. Viz omezení C++ Core Guidelines Bounds.2

C26483 STATIC_INDEX_OUT_OF_RANGE
Hodnota hodnotyje mimo hranice (0, vázaná) proměnné "variable". Indexovat do polí pomocí konstantních výrazů, které jsou v mezích pole. Viz omezení C++ Core Guidelines Bounds.2

C26485 NO_ARRAY_TO_POINTER_DECAY
Výraz výraz 'výraz': Žádné pole, které by se rozložily ukazatelem. Viz omezení C++ Core Guidelines Bounds.3

Skupina GSL

C26445 NO_SPAN_REF
Odkaz na gsl::span nebo std::string_view může být indikací problému životnosti. Viz C ++ Core Guidelines GSL.view: Zobrazení

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

C26448 USE_GSL_FINALLY
Zvažte použití gsl::finally , pokud je zamýšlená konečná akce. Viz Pokyny pro C++ Core: GSL.util: Nástroje.

C26449 NO_SPAN_FROM_TEMPORARY
gsl::span nebo std::string_view vytvořený z dočasného objektu bude neplatný, pokud dojde k zneplatnění dočasného použití. Viz C++ Core Guidelines: GSL.view: Views.

Zastaralá upozornění

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

  • 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žití kontrolních mechanismů C++ Core Guidelines