C++ Core Guidelines de checker
En esta sección se C++ Core Guidelines advertencias de Checker. Para obtener información Code Analysis, vea (Code Analysis) y Inicio rápido: Code Analysis para C/C++.
Nota:
Algunas advertencias pertenecen a más de un grupo y no todas tienen un tema de referencia completo.
OWNER_POINTER grupo
C26402 DONT_HEAP_ALLOCATE_MOVABLE_RESULT
Devuelve un objeto con ámbito en lugar de un montón asignado si tiene un constructor de movimiento. Vea C++ Core Guidelines R.3.
C26403 RESET_OR_DELETE_OWNER
Restablezca o elimine explícitamente un puntero < T de propietario ' ><'. Vea C++ Core Guidelines R.3.
C26404 DONT_DELETE_INVALID
No elimine un propietario < T que pueda estar en estado no > válido. Vea C++ Core Guidelines R.3.
C26405 DONT_ASSIGN_TO_VALID
No asigne a un < propietario T que pueda estar en estado > válido. Vea C++ Core Guidelines R.3.
C26406 DONT_ASSIGN_RAW_TO_OWNER
No asigne un puntero sin formato a un propietario < T > . Vea C++ Core Guidelines R.3.
C26407 DONT_HEAP_ALLOCATE_UNNECESSARILY
Prefiere objetos con ámbito, no asigne el montón innecesariamente. Vea C++ Core Guidelines R.5.
C26429 USE_NOTNULL
El símbolo 'símbolo' nunca se prueba para la nulabilidad, se puede marcar como not_null. Vea C++ Core Guidelines F.23.
C26430 TEST_ON_ALL_PATHS
El símbolo 'símbolo' no se ha probado para la nula en todas las rutas de acceso. Vea C++ Core Guidelines F.23.
C26431 DONT_TEST_NOTNULL
El tipo de expresión 'expr' ya es gsl::not_null. No lo pruebe en busca de valores NULL. Vea C++ Core Guidelines F.23.
RAW_POINTER grupo
C26400 NO_RAW_POINTER_ASSIGNMENT
No asigne el resultado de una asignación o una llamada de función con un valor devuelto de T de propietario a un puntero sin formato; use el propietario T en <> su <> lugar. Vea C++ Core Guidelines I.11.
C26401 DONT_DELETE_NON_OWNER
No elimine un puntero sin formato que no sea un propietario < T > . Vea C++ Core Guidelines I.11.
C26402 DONT_HEAP_ALLOCATE_MOVABLE_RESULT
Devuelve un objeto con ámbito en lugar de un montón asignado si tiene un constructor de movimiento. Vea C++ Core Guidelines R.3.
C26408 NO_MALLOC_FREE
Evite malloc() y free(), prefiera la versión nothrow de new con delete. Vea C++ Core Guidelines R.10.
C26409 NO_NEW_DELETE
Evite llamar a new y delete explícitamente, use std::make_unique < T > en su lugar. Vea C++ Core Guidelines R.11.
C26429 USE_NOTNULL
El símbolo 'símbolo' nunca se prueba para la nulabilidad, se puede marcar como not_null. Vea C++ Core Guidelines F.23.
C26430 TEST_ON_ALL_PATHS
El símbolo 'símbolo' no se ha probado para la nula en todas las rutas de acceso. Vea C++ Core Guidelines F.23.
C26431 DONT_TEST_NOTNULL
El tipo de expresión 'expr' ya es gsl::not_null. No lo pruebe en busca de valores NULL. Vea C++ Core Guidelines F.23.
C26481 NO_POINTER_ARITHMETIC
No use aritmética de puntero. Use span en su lugar. Vea C++ Core Guidelines Bounds.1.
C26485 NO_ARRAY_TO_POINTER_DECAY
Expresión 'expr': sin matriz para la decadencia del puntero. Vea C++ Core Guidelines Bounds.3.
UNIQUE_POINTER grupo
C26410 NO_REF_TO_CONST_UNIQUE_PTR
El parámetro 'parámetro' es una referencia al puntero único, use const T* o const T & en su lugar. Vea C++ Core Guidelines R.32.
C26411 NO_REF_TO_UNIQUE_PTR
El parámetro 'parámetro' es una referencia al puntero único y nunca se reasigna ni restablece, use T* o T en su lugar. Vea C++ Core Guidelines R.33.
C26414 RESET_LOCAL_SMART_PTR
Mover, copiar, reasignar o restablecer un puntero inteligente local' símbolo'. Vea C++ Core Guidelines R.5.
C26415 SMART_PTR_NOT_NEEDED
El parámetro de puntero inteligente 'symbol' solo se usa para tener acceso al puntero contenido. Use T* o T en & su lugar. Vea C++ Core Guidelines R.30.
SHARED_POINTER grupo
C26414 RESET_LOCAL_SMART_PTR
Mover, copiar, reasignar o restablecer un puntero inteligente local' símbolo'. Vea C++ Core Guidelines R.5.
C26415 SMART_PTR_NOT_NEEDED
El parámetro de puntero inteligente 'symbol' solo se usa para tener acceso al puntero contenido. Use T* o T en & su lugar. Vea C++ Core Guidelines R.30.
C26416 NO_RVALUE_REF_SHARED_PTR
El parámetro de puntero compartido 'símbolo' se pasa por referencia rvalue. Pase por valor en su lugar. Vea C++ Core Guidelines R.34.
C26417 NO_LVALUE_REF_SHARED_PTR
El parámetro de puntero compartido 'símbolo' se pasa por referencia y no se restablece ni reasigna. Use T* o T en & su lugar. Vea C++ Core Guidelines R.35.
C26418 NO_VALUE_OR_CONST_REF_SHARED_PTR
El parámetro de puntero compartido 'symbol' no se copia ni se mueve. Use T* o T en & su lugar. Vea C++ Core Guidelines R.36.
Grupo DECLARATION
C26426 NO_GLOBAL_INIT_CALLS
El inicializador global llama a una función no constexpr' symbol'. Vea C++ Core Guidelines I.22.
C26427 NO_GLOBAL_INIT_EXTERNS
El inicializador global tiene acceso al objeto extern 'symbol'. Vea C++ Core Guidelines I.22.
C26444 NO_UNNAMED_RAII_OBJECTS
Evite objetos sin nombre con construcción y destrucción personalizadas. Vea ES.84: Don't (try to) declare a local variable with no name(No declarar una variable local sin nombre).
GRUPO DE CLASES
C26432 DEFINE_OR_DELETE_SPECIAL_OPS
Si define o elimina cualquier operación predeterminada en el tipo 'símbolo', defina o elimine todas ellas. Vea C++ Core Guidelines C.21.
C26433 OVERRIDE_EXPLICITLY
La función 'symbol' debe marcarse con 'override'. Vea C.128: Las funciones virtuales debenespecificar exactamente una de las opciones virtual, invalidación o final.
C26434 DONT_HIDE_METHODS
La función 'symbol_1' oculta una función no virtual' symbol_2'. Vea C++ Core Guidelines C.128.
C26435 SINGLE_VIRTUAL_SPECIFICATION
La función 'symbol' debe especificar exactamente uno de 'virtual', 'override' o 'final'. Vea C.128: Las funciones virtuales debenespecificar exactamente una de las opciones virtual, invalidación o final.
C26436 NEED_VIRTUAL_DTOR
El tipo "símbolo "con una función virtual necesita un destructor virtual público o no virtual protegido. Vea C++ Core Guidelines C.35.
C26443 NO_EXPLICIT_DTOR_OVERRIDE
La invalidación del destructor no debe usar especificadores explícitos 'override' o 'virtual'. Vea C.128: Las funciones virtuales debenespecificar exactamente una de las opciones virtual, invalidación o final.
GRUPO DE ESTILO
C26438 NO_GOTO
Evite los goto. Consulte C++ Core Guidelines ES.76.
GRUPO DE FUNCIONES
C26439 SPECIAL_NOEXCEPT
Es posible que este tipo de función no se inicia. Declare noexcept . Vea C++ Core Guidelines F.6.
C26440 DECLARE_NOEXCEPT
La función 'symbol' se puede declarar . Vea C++ Core Guidelines F.6.
C26447 DONT_THROW_IN_NOEXCEPT
La función se declara pero noexcept llama a una función que puede producir excepciones.
Vea C++ Core Guidelines: F.6: Si es posible que la función no se inicia, declare que noexcept.
CONCURRENCY Group
C26441 NO_UNNAMED_GUARDS
Los objetos de protección deben tener un nombre. Vea C++ Core Guidelines cp.44.
Grupo CONST
C26460 USE_CONST_REFERENCE_ARGUMENTS
El argumento de referencia 'argumento' para la función 'función' se puede marcar como . Vea C++ Core Guidelines con.3.
C26461 USE_CONST_POINTER_ARGUMENTS:
El argumento de puntero 'argumento' para la función 'función' se puede marcar como un puntero a . Vea C++ Core Guidelines con.3.
C26462 USE_CONST_POINTER_FOR_VARIABLE
El valor al que apunta 'variable' se asigna una sola vez, móntelo como un puntero a . Vea C++ Core Guidelines con.4.
C26463 USE_CONST_FOR_ELEMENTS
Los elementos de la matriz 'array' solo se asignan una vez, marcar elementos . Vea C++ Core Guidelines con.4.
C26464 USE_CONST_POINTER_FOR_ELEMENTS
Los valores a los que apuntan los elementos de la matriz 'matriz' solo se asignan una vez, marcar elementos como puntero a . Vea C++ Core Guidelines con.4.
C26496 USE_CONST_FOR_VARIABLE
La variable 'variable' solo se asigna una vez, marcarla como . Vea C++ Core Guidelines con.4.
C26497 USE_CONSTEXPR_FOR_FUNCTION
Esta función se puede marcar si se desea la evaluación en tiempo de compilación. Vea C++ Core Guidelines F.4.
C26498 USE_CONSTEXPR_FOR_FUNCTIONCALL
Esta función de llamada de función puede usarse si se desea la evaluación en tiempo de compilación. Vea C++ Core Guidelines con.5.
GRUPO DE TIPOS
C26437 DONT_SLICE
No segmentar. Consulte C++ Core Guidelines ES.63.
C26465 NO_CONST_CAST_UNNECESSARY
No use para const_cast convertir const . const_cast no es necesario; Esta conversión no quita la constidad o la inestabilidad. Vea C++ Core Guidelines Type.3.
C26466 NO_STATIC_DOWNCAST_POLYMORPHIC
No use las static_cast bajadas. Una conversión de un tipo polimórfico debe usar dynamic_cast. Vea C++ Core Guidelines Type.2.
C26471 NO_REINTERPRET_CAST_FROM_VOID_PTR
No use reinterpret_cast . Una conversión desde void* puede usar static_cast . Vea C++ Core Guidelines Type.1.
C26472 NO_CASTS_FOR_ARITHMETIC_CONVERSION
No use para static_cast las conversiones aritméticas. Use la inicialización de llaves, gsl::narrow_cast o gsl::narrow. Vea C++ Core Guidelines Type.1.
C26473 NO_IDENTITY_CAST
No se convierte entre tipos de puntero donde el tipo de origen y el tipo de destino son iguales. Vea C++ Core Guidelines Type.1.
C26474 NO_IMPLICIT_CAST
No se convierte entre tipos de puntero cuando la conversión podría ser implícita. Vea C++ Core Guidelines Type.1.
C26475 NO_FUNCTION_STYLE_CASTS
No use C-casts de estilo de función. Consulte C++ Core Guidelines ES.49.
C26490 NO_REINTERPRET_CAST
No use reinterpret_cast . Vea C++ Core Guidelines Type.1.
C26491 NO_STATIC_DOWNCAST
No use las static_cast bajadas. Vea C++ Core Guidelines Type.2.
C26492 NO_CONST_CAST
No use para const_cast convertir const . Vea C++ Core Guidelines Type.3.
C26493 NO_CSTYLE_CAST
No use las conversión de estilo C. Vea C++ Core Guidelines Type.4.
C26494 VAR_USE_BEFORE_INIT
Lavariable' variable ' no está inicializada. Inicialice siempre un objeto . Vea C++ Core Guidelines Type.5.
C26495 MEMBER_UNINIT
Lavariable' variable ' no está inicializada. Inicialice siempre una variable miembro. Vea C++ Core Guidelines Type.6.
Grupo BOUNDS
C26446 USE_GSL_AT
Prefiere usar en gsl::at() lugar del operador de subíndice desactivado. Vea C++ Core Guidelines: Bounds.4: Nouse funciones y tipos de biblioteca estándar que no estén comprobados por límites.
C26481 NO_POINTER_ARITHMETIC
No use aritmética de puntero. Use span en su lugar. Consulte C++ Core Guidelines Bounds.1
C26482 NO_DYNAMIC_ARRAY_INDEXING
Indexar solo en matrices mediante expresiones constantes. Consulte C++ Core Guidelines Bounds.2
C26483 STATIC_INDEX_OUT_OF_RANGE
El valor de valor está fuera de los límites (0, enlazado)de la variable 'variable'. Solo se indexa en matrices mediante expresiones constantes que están dentro de los límites de la matriz. Consulte C++ Core Guidelines Bounds.2
C26485 NO_ARRAY_TO_POINTER_DECAY
Expresión 'expr': sin matriz para la decadencia del puntero. Consulte C++ Core Guidelines Bounds.3
Grupo GSL
C26445 NO_SPAN_REF
Una referencia a gsl::span o puede ser una indicación de un problema de std::string_view duración.
Consulte C++ Core Guidelines GSL.view: Vistas
C26446 USE_GSL_AT
Prefiere usar en gsl::at() lugar del operador de subíndice desactivado. Vea C++ Core Guidelines: Bounds.4: Nouse funciones y tipos de biblioteca estándar que no estén comprobados por límites.
C26448 USE_GSL_FINALLY
Considere la posibilidad gsl::finally de usar si se pretende una acción final. Vea C++ Core Guidelines: GSL.util: Utilities.
C26449 NO_SPAN_FROM_TEMPORARY
gsl::span o std::string_view creado a partir de un temporal no será válido cuando se invalide el temporal. Vea C++ Core Guidelines: GSL.view: Vistas.
Advertencias en desuso
Las siguientes advertencias están presentes en un conjunto de reglas experimentales iniciales del comprobacióndor de directrices principales, pero ahora están en desuso y se pueden omitir de forma segura. Las advertencias se sustituyen por las advertencias de la lista anterior.
- 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