Condividi tramite


Informazioni di riferimento sul controllo delle linee guida di base di C++

Questa sezione elenca gli avvisi del controllo delle linee guida di base di C++. Per informazioni sull'analisi del codice, vedere /analyze (Analisi del codice) e Avvio rapido: Analisi del codice per C/C++.

Nota

Alcuni avvisi appartengono a più gruppi e non tutti gli avvisi hanno un argomento di riferimento completo.

gruppo OWNER_POINTER

C26402 DONT_HEAP_ALLOCATE_MOVABLE_RESULT
Restituisce un oggetto con ambito anziché un heap allocato se dispone di un costruttore di spostamento. Vedere Linee guida di base per C++R.3.

C26403 RESET_OR_DELETE_OWNER
Reimpostare o eliminare in modo esplicito un puntatore T> proprietario<'variable'. Vedere Linee guida di base per C++R.3.

C26404 DONT_DELETE_INVALID
Non eliminare un proprietario<T> che potrebbe non essere in stato non valido. Vedere Linee guida di base per C++R.3.

C26405 DONT_ASSIGN_TO_VALID
Non assegnare a un proprietario<T> che potrebbe essere in uno stato valido. Vedere Linee guida di base per C++R.3.

C26406 DONT_ASSIGN_RAW_TO_OWNER
Non assegnare un puntatore non elaborato a un proprietario<T>. Vedere Linee guida di base per C++R.3.

C26407 DONT_HEAP_ALLOCATE_UNNECESSARILY
Preferisce gli oggetti con ambito, non allocare inutilmente heap. Vedere Linee guida di base per C++R.5.

C26429 USE_NOTNULL
Il simbolo 'symbol' non viene mai testato per verificare la nullità, ma può essere contrassegnato come not_null. Vedere Linee guida di base di C++F.23.

C26430 TEST_ON_ALL_PATHS
Il simbolo 'symbol' non viene testato per verificare la nullità in tutti i percorsi. Vedere Linee guida di base di C++F.23.

C26431 DONT_TEST_NOTNULL
Il tipo di espressione 'expr' è già gsl::not_null. Non testarlo per verificare la nullità. Vedere Linee guida di base di C++F.23.

gruppo RAW_POINTER

C26400 NO_RAW_POINTER_ASSIGNMENT
Non assegnare il risultato di un'allocazione o di una chiamata di funzione con un valore restituito T> proprietario<a un puntatore non elaborato. Usare invece il proprietario<T>. Vedere Linee guida di base di C++I.11.

C26401 DONT_DELETE_NON_OWNER
Non eliminare un puntatore non elaborato non proprietario<T>. Vedere Linee guida di base di C++I.11.

C26402 DONT_HEAP_ALLOCATE_MOVABLE_RESULT
Restituisce un oggetto con ambito anziché un heap allocato se dispone di un costruttore di spostamento. Vedere Linee guida di base per C++R.3.

C26408 NO_MALLOC_FREE
Evitare malloc() e free(), preferire la versione nothrow di new con delete. Vedere Linee guida di base per C++R.10.

C26409 NO_NEW_DELETE
Evitare di chiamare in modo esplicito nuovi ed eliminare, usare invece std::make_unique<T> . Vedere Linee guida di base per C++R.11.

C26429 USE_NOTNULL
Il simbolo 'symbol' non viene mai testato per verificare la nullità, ma può essere contrassegnato come not_null. Vedere Linee guida di base di C++F.23.

C26430 TEST_ON_ALL_PATHS
Il simbolo 'symbol' non viene testato per verificare la nullità in tutti i percorsi. Vedere Linee guida di base di C++F.23.

C26431 DONT_TEST_NOTNULL
Il tipo di espressione 'expr' è già gsl::not_null. Non testarlo per verificare la nullità. Vedere Linee guida di base di C++F.23.

C26481 NO_POINTER_ARITHMETIC
Non usare l'aritmetica del puntatore. Usare invece span. Vedere Linee guida di base di C++ Bounds.1.

C26485 NO_ARRAY_TO_POINTER_DECAY
Espressione 'expr': nessuna matrice per il decadimento del puntatore. Vedere Linee guida di base di C++ Bounds.3.

gruppo UNIQUE_POINTER

C26410 NO_REF_TO_CONST_UNIQUE_PTR
Il parametro 'parameter' è un riferimento al const puntatore univoco, usare invece const T* o const T& . Vedere Linee guida di base di C++R.32.

C26411 NO_REF_TO_UNIQUE_PTR
Il parametro 'parameter' è un riferimento al puntatore univoco e non viene mai riassegnato o reimpostato, usare T* o T& . Vedere Linee guida di base per C++R.33.

C26414 RESET_LOCAL_SMART_PTR
Spostare, copiare, riassegnare o reimpostare un puntatore intelligente locale 'symbol'. Vedere Linee guida di base per C++R.5.

C26415 SMART_PTR_NOT_NEEDED
Il parametro del puntatore intelligente 'symbol' viene usato solo per accedere al puntatore indipendente. In alternativa, usare T* o T& . Vedere Linee guida di base per C++R.30.

gruppo SHARED_POINTER

C26414 RESET_LOCAL_SMART_PTR
Spostare, copiare, riassegnare o reimpostare un puntatore intelligente locale 'symbol'. Vedere Linee guida di base per C++R.5.

C26415 SMART_PTR_NOT_NEEDED
Il parametro del puntatore intelligente 'symbol' viene usato solo per accedere al puntatore indipendente. In alternativa, usare T* o T& . Vedere Linee guida di base per C++R.30.

C26416 NO_RVALUE_REF_SHARED_PTR
Il parametro del puntatore condiviso 'symbol' viene passato dal riferimento rvalue. Passare invece il valore . Vedere Linee guida di base per C++R.34.

C26417 NO_LVALUE_REF_SHARED_PTR
Il parametro del puntatore condiviso 'symbol' viene passato per riferimento e non reimpostato o riassegnato. In alternativa, usare T* o T& . Vedere Linee guida di base per C++R.35.

C26418 NO_VALUE_OR_CONST_REF_SHARED_PTR
Il parametro del puntatore condiviso 'symbol' non viene copiato o spostato. In alternativa, usare T* o T& . Vedere Linee guida di base di C++R.36.

Gruppo DECLARATION

C26426 NO_GLOBAL_INIT_CALLS
L'inizializzatore globale chiama una funzione 'symbol' non constexpr. Vedere Linee guida di base di C++I.22.

C26427 NO_GLOBAL_INIT_EXTERNS
L'inizializzatore globale accede all'oggetto extern 'symbol'. Vedere Linee guida di base di C++I.22.

C26444 NO_UNNAMED_RAII_OBJECTS
Evitare oggetti senza nome con costruzione e distruzione personalizzati. Vedere ES.84: Non dichiarare una variabile locale senza nome.

Gruppo DI CLASSI

C26432 DEFINE_OR_DELETE_SPECIAL_OPS
Se si definisce o si elimina un'operazione predefinita nel tipo 'symbol', definirle o eliminarle tutte. Vedere Linee guida di base C.21 per C++.

C26433 OVERRIDE_EXPLICITLY
La funzione 'symbol' deve essere contrassegnata con 'override'. Vedere C.128: Le funzioni virtuali devono specificare esattamente uno dei valori virtuali, di override o finali.

C26434 DONT_HIDE_METHODS
La funzione 'symbol_1' nasconde una funzione non virtuale 'symbol_2'. Vedere Linee guida di base C.128 per C++.

C26435 SINGLE_VIRTUAL_SPECIFICATION
La funzione 'symbol' deve specificare esattamente uno dei valori 'virtual', 'override' o 'final'. Vedere C.128: Le funzioni virtuali devono specificare esattamente uno dei valori virtuali, di override o finali.

C26436 NEED_VIRTUAL_DTOR
Il tipo 'symbol' con una funzione virtuale richiede un distruttore non virtuale pubblico o protetto. Vedere Linee guida di base C.35 per C++.

C26443 NO_EXPLICIT_DTOR_OVERRIDE
L'override del distruttore non deve usare identificatori espliciti 'override' o 'virtual'. Vedere C.128: Le funzioni virtuali devono specificare esattamente uno dei valori virtuali, di override o finali.

Gruppo STYLE

C26438 NO_GOTO
Evita goto. Vedere Linee guida di base per C++ ES.76.

Gruppo FUNCTION

C26439 SPECIAL_NOEXCEPT
Questo tipo di funzione potrebbe non generare. Dichiararlo noexcept. Vedere Linee guida di base per C++F.6.

C26440 DECLARE_NOEXCEPT
La funzione 'symbol' può essere dichiarata noexcept. Vedere Linee guida di base per C++F.6.

C26447 DONT_THROW_IN_NOEXCEPT
La funzione viene dichiarata noexcept ma chiama una funzione che può generare eccezioni. Vedere Linee guida di base di C++: F.6: Se la funzione potrebbe non generare, dichiararla noexcept.

Gruppo CONCURRENCY

C26441 NO_UNNAMED_GUARDS
Gli oggetti Guard devono essere denominati. Vedere Linee guida di base per C++ cp.44.

Gruppo CONST

C26460 USE_CONST_REFERENCE_ARGUMENTS
L'argomento di riferimento 'argument' per la funzione 'function' può essere contrassegnato come const. Vedere Linee guida di base di C++ con.3.

C26461 USE_CONST_POINTER_ARGUMENTS:
L'argomento del puntatore 'argument' per la funzione 'function' può essere contrassegnato come puntatore a const. Vedere Linee guida di base di C++ con.3.

C26462 USE_CONST_POINTER_FOR_VARIABLE
Il valore a cui punta 'variable' viene assegnato una sola volta, contrassegnarlo come puntatore a const. Vedere Linee guida di base di C++ con.4.

C26463 USE_CONST_FOR_ELEMENTS
Gli elementi della matrice 'array' vengono assegnati una sola volta, contrassegnare gli elementi const. Vedere Linee guida di base di C++ con.4.

C26464 USE_CONST_POINTER_FOR_ELEMENTS
I valori a cui puntano gli elementi della matrice 'array' vengono assegnati una sola volta, contrassegnare gli elementi come puntatore a const. Vedere Linee guida di base di C++ con.4.

C26496 USE_CONST_FOR_VARIABLE
La variabile 'variable' viene assegnata una sola volta, contrassegnarla come const. Vedere Linee guida di base di C++ con.4.

C26497 USE_CONSTEXPR_FOR_FUNCTION
Questa funzione funzione può essere contrassegnata constexpr se si desidera eseguire la valutazione in fase di compilazione. Vedere Linee guida di base per C++F.4.

C26498 USE_CONSTEXPR_FOR_FUNCTIONCALL
Questa funzione di chiamata di funzione può usare constexpr se si desidera eseguire la valutazione in fase di compilazione. Vedere Linee guida di base di C++ con.5.

TYPE Group

C26437 DONT_SLICE
Non filtrare. Vedere Linee guida di base di C++ ES.63.

C26465 NO_CONST_CAST_UNNECESSARY
Non usare const_cast per allontanare const. const_cast non è obbligatorio; la constness o la volatilità non viene rimossa da questa conversione. Vedere C++ Core Guidelines Type.3 (Linee guida di base C++).

C26466 NO_STATIC_DOWNCAST_POLYMORPHIC
Non usare static_cast i downcast. Un cast da un tipo polimorfico deve usare dynamic_cast. Vedere C++ Core Guidelines Type.2 (Linee guida di base C++).

C26471 NO_REINTERPRET_CAST_FROM_VOID_PTR
Non utilizzare reinterpret_cast. Un cast da void* può usare static_cast. Vedere Linee guida di base di C++ type.1.

C26472 NO_CASTS_FOR_ARITHMETIC_CONVERSION
Non usare per static_cast le conversioni aritmetiche. Usare l'inizializzazione tra parentesi graffe, gsl::narrow_cast o gsl::narrow. Vedere Linee guida di base di C++ type.1.

C26473 NO_IDENTITY_CAST
Non eseguire il cast tra i tipi di puntatore in cui il tipo di origine e il tipo di destinazione sono uguali. Vedere Linee guida di base di C++ type.1.

C26474 NO_IMPLICIT_CAST
Non eseguire il cast tra tipi di puntatore quando la conversione potrebbe essere implicita. Vedere Linee guida di base di C++ type.1.

C26475 NO_FUNCTION_STYLE_CASTS
Non usare cast C in stile funzione. Vedere Linee guida di base per C++ ES.49.

C26490 NO_REINTERPRET_CAST
Non utilizzare reinterpret_cast. Vedere Linee guida di base di C++ type.1.

C26491 NO_STATIC_DOWNCAST
Non usare static_cast i downcast. Vedere C++ Core Guidelines Type.2 (Linee guida di base C++).

C26492 NO_CONST_CAST
Non usare const_cast per allontanare const. Vedere C++ Core Guidelines Type.3 (Linee guida di base C++).

C26493 NO_CSTYLE_CAST
Non usare cast in stile C. Vedere C++ Core Guidelines Type.4 (Linee guida di base C++).

C26494 VAR_USE_BEFORE_INIT
La variabile 'variable' non è inizializzata. Inizializzare sempre un oggetto . Vedere C++ Core Guidelines Type.5 (Linee guida di base C++).

C26495 MEMBER_UNINIT
La variabile 'variable' non è inizializzata. Inizializzare sempre una variabile membro. Vedere Linee guida di base di C++ type.6.

Gruppo BOUNDS

C26446 USE_GSL_AT
Preferisce usare gsl::at() anziché un operatore pedice deselezionato. Vedere Linee guida di base di C++: Bounds.4: Non usare funzioni e tipi di libreria standard non controllati.

C26481 NO_POINTER_ARITHMETIC
Non usare l'aritmetica del puntatore. Usare invece span. Vedere Linee guida di base per C++ .1

C26482 NO_DYNAMIC_ARRAY_INDEXING
Solo l'indice in matrici che usano espressioni costanti. Vedere Linee guida di base per C++ .2

C26483 STATIC_INDEX_OUT_OF_RANGE
Il valore del valore non rientra nei limiti (0, associati) della variabile 'variable'. Solo l'indice in matrici che usano espressioni costanti che si trovano all'interno di limiti della matrice. Vedere Linee guida di base per C++ .2

C26485 NO_ARRAY_TO_POINTER_DECAY
Espressione 'expr': nessuna matrice per il decadimento del puntatore. Vedere Linee guida di base per C++.3

Gruppo GSL

C26445 NO_SPAN_REF
Un riferimento a gsl::span o std::string_view può essere un'indicazione di un problema di durata. Vedere Linee guida di base di C++ GSL.view: Visualizzazioni

C26446 USE_GSL_AT
Preferisce usare gsl::at() anziché un operatore pedice deselezionato. Vedere Linee guida di base di C++: Bounds.4: Non usare funzioni e tipi di libreria standard non controllati.

C26448 USE_GSL_FINALLY
Prendere in considerazione l'uso gsl::finally se è prevista l'azione finale. Vedere Linee guida di base di C++: GSL.util: Utilità.

C26449 NO_SPAN_FROM_TEMPORARY
gsl::span o std::string_view creato da un oggetto temporaneo non sarà valido quando il valore temporaneo viene invalidato. Vedere Linee guida di base di C++: GSL.view: Visualizzazioni.

Avvisi deprecati

Gli avvisi seguenti sono presenti in un set di regole sperimentale iniziale del controllo delle linee guida di base, ma sono ora deprecati e possono essere ignorati in modo sicuro. Gli avvisi vengono sostituiti da avvisi dell'elenco precedente.

  • 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

Vedi anche

Uso dei controlli delle linee guida di base di C++