Delen via


Naslaginformatie over C++-kernrichtlijnen

In deze sectie vindt u C++ Core Guidelines Checker-waarschuwingen. Zie (Codeanalyse) en Quick Start voor meer informatie over Codeanalyse: Codeanalyse voor C/C++./analyze

Opmerking

Sommige waarschuwingen behoren tot meer dan één groep en niet alle waarschuwingen hebben een volledig naslagonderwerp.

OWNER_POINTER groep

C26402 DONT_HEAP_ALLOCATE_MOVABLE_RESULT
Hiermee wordt een scoped object geretourneerd in plaats van een heap-toegewezen object als het een verplaatsingsconstructor heeft. Zie C++ Core Guidelines R.3.

C26403 RESET_OR_DELETE_OWNER
Stel een eigenaar<T-aanwijzer> 'variabele' opnieuw in of verwijder deze expliciet. Zie C++ Core Guidelines R.3.

C26404 DONT_DELETE_INVALID
Verwijder geen eigenaar<T> die mogelijk ongeldig is. Zie C++ Core Guidelines R.3.

C26405 DONT_ASSIGN_TO_VALID
Wijs niet toe aan een eigenaar<T> die mogelijk een geldige status heeft. Zie C++ Core Guidelines R.3.

C26406 DONT_ASSIGN_RAW_TO_OWNER
Wijs geen onbewerkte aanwijzer toe aan een eigenaar<T>. Zie C++ Core Guidelines R.3.

C26407 DONT_HEAP_ALLOCATE_UNNECESSARILY
Geef de voorkeur aan scoped objecten, wijs niet onnodig heap-toe. Zie C++ Core Guidelines R.5.

C26429 USE_NOTNULL
Symbool 'symbool' wordt nooit getest op nullness. Het kan worden gemarkeerd als not_null. Zie C++ Core Guidelines F.23.

C26430 TEST_ON_ALL_PATHS
Symbool 'symbool' wordt niet getest op nullheid op alle paden. Zie C++ Core Guidelines F.23.

C26431 DONT_TEST_NOTNULL
Het type expressie 'expr' is al gsl::not_null. Test deze niet op nullness. Zie C++ Core Guidelines F.23.

RAW_POINTER groep

C26400 NO_RAW_POINTER_ASSIGNMENT
Wijs het resultaat van een toewijzing of een functieaanroep met een eigenaar<T-retourwaarde> niet toe aan een onbewerkte aanwijzer. Gebruik in plaats daarvan eigenaar<T> . Zie C++ Core Guidelines I.11.

C26401 DONT_DELETE_NON_OWNER
Verwijder geen onbewerkte aanwijzer die geen eigenaar<T> is. Zie C++ Core Guidelines I.11.

C26402 DONT_HEAP_ALLOCATE_MOVABLE_RESULT
Hiermee wordt een scoped object geretourneerd in plaats van een heap-toegewezen object als het een verplaatsingsconstructor heeft. Zie C++ Core Guidelines R.3.

C26408 NO_MALLOC_FREE
Vermijd malloc() en free(), geef de voorkeur aan de nothrow-versie van nieuwe met delete. Zie C++ Core Guidelines R.10.

C26409 NO_NEW_DELETE
Gebruik in plaats daarvan std::make_unique<T> om nieuwe aan te roepen en expliciet te verwijderen. Zie C++ Core Guidelines R.11.

C26429 USE_NOTNULL
Symbool 'symbool' wordt nooit getest op nullness. Het kan worden gemarkeerd als not_null. Zie C++ Core Guidelines F.23.

C26430 TEST_ON_ALL_PATHS
Symbool 'symbool' wordt niet getest op nullheid op alle paden. Zie C++ Core Guidelines F.23.

C26431 DONT_TEST_NOTNULL
Het type expressie 'expr' is al gsl::not_null. Test deze niet op nullness. Zie C++ Core Guidelines F.23.

C26481 NO_POINTER_ARITHMETIC
Gebruik geen aanwijzerberekening. Gebruik in plaats daarvan span. Zie C++ Core Guidelines Bounds.1.

C26485 NO_ARRAY_TO_POINTER_DECAY
Expressie 'expr': geen matrix om verval aan te wijzen. Zie C++ Core Guidelines Bounds.3.

UNIQUE_POINTER groep

C26410 NO_REF_TO_CONST_UNIQUE_PTR
De parameter 'parameter' is een verwijzing naar const een unieke aanwijzer, gebruik in plaats daarvan const T* of const T&. Zie C++ Core Guidelines R.32.

C26411 NO_REF_TO_UNIQUE_PTR
De parameter 'parameter' is een verwijzing naar een unieke aanwijzer en wordt nooit opnieuw toegewezen of opnieuw ingesteld, gebruik in plaats daarvan T* of T&. Zie C++ Core Guidelines R.33.

C26414 RESET_LOCAL_SMART_PTR
Een lokale smartpointer 'symbool' verplaatsen, kopiëren, opnieuw toewijzen of opnieuw instellen. Zie C++ Core Guidelines R.5.

C26415-SMART_PTR_NOT_NEEDED
Smart pointer parameter 'symbol' wordt alleen gebruikt voor toegang tot ingesloten aanwijzer. Gebruik in plaats daarvan T* of T&. Zie C++ Core Guidelines R.30.

SHARED_POINTER groep

C26414 RESET_LOCAL_SMART_PTR
Een lokale smartpointer 'symbool' verplaatsen, kopiëren, opnieuw toewijzen of opnieuw instellen. Zie C++ Core Guidelines R.5.

C26415-SMART_PTR_NOT_NEEDED
Smart pointer parameter 'symbol' wordt alleen gebruikt voor toegang tot ingesloten aanwijzer. Gebruik in plaats daarvan T* of T&. Zie C++ Core Guidelines R.30.

C26416 NO_RVALUE_REF_SHARED_PTR
De parameter 'symbool' van de gedeelde aanwijzer wordt doorgegeven door rvalue-verwijzing. Geef in plaats daarvan de waarde door. Zie C++ Core Guidelines R.34.

C26417 NO_LVALUE_REF_SHARED_PTR
De parameter 'symbool' van de gedeelde aanwijzer wordt doorgegeven door verwijzing en wordt niet opnieuw ingesteld of opnieuw toegewezen. Gebruik in plaats daarvan T* of T&. Zie C++ Core Guidelines R.35.

C26418 NO_VALUE_OR_CONST_REF_SHARED_PTR
De parameter 'symbool' van de gedeelde aanwijzer wordt niet gekopieerd of verplaatst. Gebruik in plaats daarvan T* of T&. Zie C++ Core Guidelines R.36.

DECLARATIEGROEP

C26426 NO_GLOBAL_INIT_CALLS
Globale initialisatiefunctie roept een niet-constexpr-functie 'symbool' aan. Zie C++ Core Guidelines I.22.

C26427 NO_GLOBAL_INIT_EXTERNS
Globale initialisatiefunctie heeft toegang tot extern object 'symbool'. Zie C++ Core Guidelines I.22.

C26444 NO_UNNAMED_RAII_OBJECTS
Vermijd niet-benoemde objecten met aangepaste constructie en vernietiging. Zie ES.84: Declareer geen lokale variabele zonder naam (probeer het te doen).

CLASS-groep

C26432 DEFINE_OR_DELETE_SPECIAL_OPS
Als u een standaardbewerking in het type 'symbool' definieert of verwijdert, definieert of verwijdert u ze allemaal. Zie C++ Kernrichtlijnen C.21.

C26433 OVERRIDE_EXPLICITLY
Functie 'symbool' moet worden gemarkeerd met 'override'. Zie C.128: Virtuele functies moeten exact één van virtuele, onderdrukking of definitief opgeven.

C26434 DONT_HIDE_METHODS
De functie 'symbol_1' verbergt een niet-virtuele functie 'symbol_2'. Zie C++ Kernrichtlijnen C.128.

C26435 SINGLE_VIRTUAL_SPECIFICATION
Het functiesymbool moet exact een van de 'virtuele', 'onderdrukking' of 'definitief' opgeven. Zie C.128: Virtuele functies moeten exact één van virtuele, onderdrukking of definitief opgeven.

C26436 NEED_VIRTUAL_DTOR
Het type 'symbool' met een virtuele functie heeft een openbare virtuele of beveiligde niet-virtuele destructor nodig. Zie C++ Basisrichtlijnen C.35.

C26443 NO_EXPLICIT_DTOR_OVERRIDE
Het overschrijven van destructor mag geen expliciete 'onderdrukking' of 'virtuele' aanduidingen gebruiken. Zie C.128: Virtuele functies moeten exact één van virtuele, onderdrukking of definitief opgeven.

STIJLgroep

C26438 NO_GOTO
Vermijd goto. Zie C++ Core Guidelines ES.76.

FUNCTIEgroep

C26439 SPECIAL_NOEXCEPT
Dit soort functie kan niet gooien. Declareer het noexcept. Zie C++ Core Guidelines F.6.

C26440 DECLARE_NOEXCEPT
Functie 'symbool' kan worden gedeclareerd noexcept. Zie C++ Core Guidelines F.6.

C26447 DONT_THROW_IN_NOEXCEPT
De functie wordt gedeclareerd noexcept , maar roept een functie aan die uitzonderingen kan genereren. Zie C++ Kernrichtlijnen: F.6: Als uw functie mogelijk niet genereert, declareert u deze noexcept.

Gelijktijdigheidsgroep

C26441 NO_UNNAMED_GUARDS
Beveiligingsobjecten moeten een naam hebben. Zie C++ Core Guidelines cp.44.

CONST-groep

C26460 USE_CONST_REFERENCE_ARGUMENTS
Het verwijzingsargument 'argument' voor functie 'functie' kan worden gemarkeerd als const. Zie C++ Core Guidelines con.3.

C26461 USE_CONST_POINTER_ARGUMENTS:
Het argument 'argument' van de aanwijzer voor functie 'functie' kan worden gemarkeerd als een aanwijzer naar const. Zie C++ Core Guidelines con.3.

C26462 USE_CONST_POINTER_FOR_VARIABLE
De waarde waarnaar wordt verwezen door 'variabele' wordt slechts eenmaal toegewezen, markeert deze als een aanwijzer.const Zie C++ Core Guidelines con.4.

C26463 USE_CONST_FOR_ELEMENTS
De elementen van matrix 'matrix' worden slechts eenmaal toegewezen, elementen constmarkeren. Zie C++ Core Guidelines con.4.

C26464 USE_CONST_POINTER_FOR_ELEMENTS
De waarden waarnaar wordt verwezen door elementen van matrix 'matrix' worden slechts eenmaal toegewezen, elementen markeren als aanwijzer.const Zie C++ Core Guidelines con.4.

C26496 USE_CONST_FOR_VARIABLE
De variabele 'variabele' wordt slechts eenmaal toegewezen, markeert deze als const. Zie C++ Core Guidelines con.4.

C26497 USE_CONSTEXPR_FOR_FUNCTION
Deze functie kan worden gemarkeerd constexpr als de evaluatie van de compilatietijd gewenst is. Zie C++ Core Guidelines F.4.

C26498 USE_CONSTEXPR_FOR_FUNCTIONCALL
Deze functie voor functie-aanroep kan worden gebruikt constexpr als de evaluatie van de compilatietijd gewenst is. Zie C++ Core Guidelines con.5.

TYPE-groep

C26437 DONT_SLICE
Segmenteren niet. Zie C++ Core Guidelines ES.63.

C26465-NO_CONST_CAST_UNNECESSARY
Niet gebruiken const_cast om weg constte werpen. const_cast is niet vereist; constness of volatiliteit wordt niet verwijderd door deze conversie. Zie C++ Core Guidelines Type.3.

C26466 NO_STATIC_DOWNCAST_POLYMORPHIC
Gebruik geen static_cast downcasts. Een cast van een polymorf type moet dynamic_cast gebruiken. Zie C++ Core Guidelines Type.2.

C26471 NO_REINTERPRET_CAST_FROM_VOID_PTR
Niet gebruiken reinterpret_cast. Een cast van void* kan gebruiken static_cast. Zie C++ Core Guidelines Type.1.

C26472 NO_CASTS_FOR_ARITHMETIC_CONVERSION
Gebruik geen static_cast rekenkundige conversies. Gebruik accolades initialisatie, gsl::narrow_cast of gsl::narrow. Zie C++ Core Guidelines Type.1.

C26473 NO_IDENTITY_CAST
Cast niet tussen aanwijzertypen waarbij het brontype en het doeltype hetzelfde zijn. Zie C++ Core Guidelines Type.1.

C26474 NO_IMPLICIT_CAST
Cast niet tussen aanwijzertypen wanneer de conversie impliciet kan zijn. Zie C++ Core Guidelines Type.1.

C26475 NO_FUNCTION_STYLE_CASTS
Gebruik geen functiestijl C-casts. Zie C++ Core Guidelines ES.49.

C26490 NO_REINTERPRET_CAST
Niet gebruiken reinterpret_cast. Zie C++ Core Guidelines Type.1.

C26491 NO_STATIC_DOWNCAST
Gebruik geen static_cast downcasts. Zie C++ Core Guidelines Type.2.

C26492 NO_CONST_CAST
Niet gebruiken const_cast om weg constte werpen. Zie C++ Core Guidelines Type.3.

C26493 NO_CSTYLE_CAST
Gebruik geen C-stijl casts. Zie C++ Core Guidelines Type.4.

C26494 VAR_USE_BEFORE_INIT
Variabele 'variabele' is niet geïnitialiseerd. Initialiseer altijd een object. Zie C++ Core Guidelines Type.5.

C26495 MEMBER_UNINIT
Variabele 'variabele' is niet geïnitialiseerd. Initialiseer altijd een lidvariabele. Zie C++ Core Guidelines Type.6.

BOUNDS-groep

C26446 USE_GSL_AT
gsl::at() Gebruik liever in plaats van een niet-ingeschakelde subscriptoperator. Zie C++ Basisrichtlijnen: Bounds.4: Gebruik geen standaardbibliotheekfuncties en -typen die niet zijn gecontroleerd.

C26481 NO_POINTER_ARITHMETIC
Gebruik geen aanwijzerberekening. Gebruik in plaats daarvan span. Zie C++ Core Guidelines Bounds.1

C26482 NO_DYNAMIC_ARRAY_INDEXING
Indexeer alleen in matrices met behulp van constante expressies. Zie C++ Core Guidelines Bounds.2

C26483 STATIC_INDEX_OUT_OF_RANGE
Waardewaarde valt buiten de grenzen (0, afhankelijk) van variabele 'variabele'. Indexeer alleen in matrices met behulp van constante expressies binnen de grenzen van de matrix. Zie C++ Core Guidelines Bounds.2

C26485 NO_ARRAY_TO_POINTER_DECAY
Expressie 'expr': geen matrix om verval aan te wijzen. Zie C++ Core Guidelines Bounds.3

GSL-groep

C26445 NO_SPAN_REF
Een verwijzing naar gsl::span of std::string_view kan een indicatie zijn van een probleem met de levensduur. Zie C++ Core Guidelines GSL.view: Views

C26446 USE_GSL_AT
gsl::at() Gebruik liever in plaats van een niet-ingeschakelde subscriptoperator. Zie C++ Basisrichtlijnen: Bounds.4: Gebruik geen standaardbibliotheekfuncties en -typen die niet zijn gecontroleerd.

C26448 USE_GSL_FINALLY
Overweeg om te gebruiken gsl::finally als de uiteindelijke actie is bedoeld. Zie C++ Core Guidelines: GSL.util: Utilities.

C26449 NO_SPAN_FROM_TEMPORARY
gsl::span of std::string_view gemaakt op basis van een tijdelijk bestand, is ongeldig wanneer de tijdelijke bewerking ongeldig is. Zie C++ Kernrichtlijnen: GSL.view: Weergaven.

Afgeschafte waarschuwingen

De volgende waarschuwingen zijn aanwezig in een vroege experimentele regelset van de belangrijkste richtlijnencontrole, maar zijn nu afgeschaft en kunnen veilig worden genegeerd. De waarschuwingen worden vervangen door waarschuwingen uit de bovenstaande lijst.

  • 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

Zie ook

De C++ Core Guidelines Checkers gebruiken