Compartir a través de


Referencia del comprobador de C++ Core Guidelines

En esta sección se enumeran las advertencias del comprobador de C++ Core Guidelines Para información sobre Code Analysis, consulte /analyze (Code Analysis) y el Inicio rápido: Code Analysis para C/C++.

Nota:

Algunas advertencias pertenecen a más de un grupo y no todas las advertencias tienen un tema de referencia completo.

Grupo OWNER_POINTER

C26402 DONT_HEAP_ALLOCATE_MOVABLE_RESULT
Devolver un objeto con ámbito en lugar de un montón asignado si se tiene un constructor de movimiento. Consulte C++ Core Guidelines R.3.

C26403 RESET_OR_DELETE_OWNER
Restablecer o eliminar explícitamente un puntero <T>"variable". Consulte C++ Core Guidelines R.3.

C26404 DONT_DELETE_INVALID
No eliminar un propietario<T> que puede estar en un estado no válido. Consulte C++ Core Guidelines R.3.

C26405 DONT_ASSIGN_TO_VALID
No asignar a un propietario<T> que puede estar en estado válido. Consulte C++ Core Guidelines R.3.

C26406 DONT_ASSIGN_RAW_TO_OWNER
No asignar un puntero básico a un propietario<T>. Consulte C++ Core Guidelines R.3.

C26407 DONT_HEAP_ALLOCATE_UNNECESSARILY
Dar preferencia a objetos con ámbito, no asignar por montón innecesariamente. Consulte C++ Core Guidelines R.5.

C26429 USE_NOTNULL
El símbolo "symbol" nunca se prueba para ver si su valor es NULL, así que se puede marcar como not_null. Consulte C++ Core Guidelines F.23.

C26430 TEST_ON_ALL_PATHS
El símbolo "symbol" no se prueba para ver si su valor es NULL en todas las rutas de acceso. Consulte C++ Core Guidelines F.23.

C26431 DONT_TEST_NOTNULL
El tipo de expresión "expr" ya es gsl::not_null. No probarlo para ver si su valor es NULL. Consulte C++ Core Guidelines F.23.

Grupo RAW_POINTER

C26400 NO_RAW_POINTER_ASSIGNMENT
No asignar el resultado de una asignación o una llamada de función con un valor devuelto de propietario<T> a un puntero básico; usar el propietario<T> en su lugar. Consulte C++ Core Guidelines I.11.

C26401 DONT_DELETE_NON_OWNER
No eliminar un puntero básico que no sea propietario<T>. Consulte C++ Core Guidelines I.11.

C26402 DONT_HEAP_ALLOCATE_MOVABLE_RESULT
Devolver un objeto con ámbito en lugar de un montón asignado si se tiene un constructor de movimiento. Consulte C++ Core Guidelines R.3.

C26408 NO_MALLOC_FREE
Evitar malloc() y free(), dar preferencia a la versión nothrow de new con delete. Consulte C++ Core Guidelines R.10.

C26409 NO_NEW_DELETE
Evitar llamar a new y delete explícitamente; usar std::make_unique<T> en su lugar. Consulte C++ Core Guidelines R.11.

C26429 USE_NOTNULL
El símbolo "symbol" nunca se prueba para ver si su valor es NULL, así que se puede marcar como not_null. Consulte C++ Core Guidelines F.23.

C26430 TEST_ON_ALL_PATHS
El símbolo "symbol" no se prueba para ver si su valor es NULL en todas las rutas de acceso. Consulte C++ Core Guidelines F.23.

C26431 DONT_TEST_NOTNULL
El tipo de expresión "expr" ya es gsl::not_null. No probarlo para ver si su valor es NULL. Consulte C++ Core Guidelines F.23.

C26481 NO_POINTER_ARITHMETIC
No usar aritmética de punteros. Use un intervalo en su lugar. Consulte C++ Core Guidelines Bounds.1.

C26485 NO_ARRAY_TO_POINTER_DECAY
Expresión "expr": sin degradación de matriz a puntero. Consulte C++ Core Guidelines Bounds.3.

Grupo UNIQUE_POINTER

C26410 NO_REF_TO_CONST_UNIQUE_PTR
El parámetro 'parameter' es una referencia al const puntero único, use const T* o const T& en su lugar. Consulte C++ Core Guidelines R.32.

C26411 NO_REF_TO_UNIQUE_PTR
El parámetro 'parameter' es una referencia al puntero único y nunca se reasigna o restablece, usa T* o T& en su lugar. Consulte C++ Core Guidelines R.33.

C26414 RESET_LOCAL_SMART_PTR
Mover, copiar, reasignar o restablecer un puntero inteligente local "symbol". Consulte C++ Core Guidelines R.5.

C26415 SMART_PTR_NOT_NEEDED
El parámetro de puntero inteligente "symbol" solo se usa para acceder al puntero contenido. Use T* o T& en su lugar. Consulte C++ Core Guidelines R.30.

Grupo SHARED_POINTER

C26414 RESET_LOCAL_SMART_PTR
Mover, copiar, reasignar o restablecer un puntero inteligente local "symbol". Consulte C++ Core Guidelines R.5.

C26415 SMART_PTR_NOT_NEEDED
El parámetro de puntero inteligente "symbol" solo se usa para acceder al puntero contenido. Use T* o T& en su lugar. Consulte C++ Core Guidelines R.30.

C26416 NO_RVALUE_REF_SHARED_PTR
El parámetro de puntero compartido "symbol" se pasa mediante la referencia a rvalue. Pasar por valor en su lugar. Consulte C++ Core Guidelines R.34.

C26417 NO_LVALUE_REF_SHARED_PTR
El parámetro de puntero compartido "symbol" se pasa por referencia y no se restablece ni reasigna. Use T* o T& en su lugar. Consulte 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. Consulte C++ Core Guidelines R.36.

Grupo DECLARATION

C26426 NO_GLOBAL_INIT_CALLS
El inicializador global llama a una función non-constexpr "symbol". Consulte C++ Core Guidelines I.22.

C26427 NO_GLOBAL_INIT_EXTERNS
El inicializador global accede a un objeto externo "symbol". Consulte C++ Core Guidelines I.22.

C26444 NO_UNNAMED_RAII_OBJECTS
Evitar objetos sin nombre con construcción y destrucción personalizadas. Consulte ES.84: No (intentar) declarar una variable local sin nombre.

Grupo CLASS

C26432 DEFINE_OR_DELETE_SPECIAL_OPS
Si se define o elimina cualquier operación predeterminada en el tipo "symbol", definir o eliminar todas ellas. Consulte C++ Core Guidelines C.21.

C26433 OVERRIDE_EXPLICITLY
La función "symbol" debe marcarse con "override". Consulte C.128: Las funciones virtuales deben especificar exactamente uno de los valores siguientes: "virtual", "override" o "final".

C26434 DONT_HIDE_METHODS
La función "symbol_1" oculta una función no virtual "symbol_2". Consulte C++ Core Guidelines C.128.

C26435 SINGLE_VIRTUAL_SPECIFICATION
La función "symbol" debe especificar exactamente uno de los siguientes valores: "virtual", "override" o "final". Consulte C.128: Las funciones virtuales deben especificar exactamente uno de los valores siguientes: "virtual", "override" o "final".

C26436 NEED_VIRTUAL_DTOR
El tipo "symbol" con una función virtual necesita un destructor público virtual o uno protegido no virtual. Consulte C++ Core Guidelines C.35.

C26443 NO_EXPLICIT_DTOR_OVERRIDE
La invalidación del destructor no debe usar especificadores "override" o "virtual" explícitos. Consulte C.128: Las funciones virtuales deben especificar exactamente uno de los valores siguientes: "virtual", "override" o "final".

Grupo STYLE

C26438 NO_GOTO
Evite goto. Consulte C++ Core Guidelines ES.76.

Grupo FUNCTION

C26439 SPECIAL_NOEXCEPT
Es posible que este tipo de función no se genere. Declárela como noexcept. Consulte C++ Core Guidelines F.6.

C26440 DECLARE_NOEXCEPT
La función "symbol" se puede declarar como noexcept. Consulte C++ Core Guidelines F.6.

C26447 DONT_THROW_IN_NOEXCEPT
La función se declara como noexcept pero llama a una función que puede producir excepciones. Consulte C++ Core Guidelines: F.6: Si es posible que la función no produzca excepciones, declárela como noexcept.

Grupo CONCURRENCY

C26441 NO_UNNAMED_GUARDS
Se debe asignar un nombre a los objetos de cláusula de restricción. Consulte C++ Core Guidelines CP.44.

Grupo CONST

C26460 USE_CONST_REFERENCE_ARGUMENTS
El argumento de referencia "argument" para la función "function" se puede marcar como const. Consulte C++ Core Guidelines con.3.

C26461 USE_CONST_POINTER_ARGUMENTS:
El argumento de puntero "argument" de la función "function" se puede marcar como puntero a const. Consulte C++ Core Guidelines con.3.

C26462 USE_CONST_POINTER_FOR_VARIABLE
El valor al que apunta "variable" se asigna solo una vez, lo marca como puntero a const. Consulte C++ Core Guidelines con.4.

C26463 USE_CONST_FOR_ELEMENTS
Los elementos de la matriz "array" solo se asignan una vez; marcar los elementos como const. Consulte C++ Core Guidelines con.4.

C26464 USE_CONST_POINTER_FOR_ELEMENTS
Los valores a los que apuntan los elementos de matriz "array" se asignan solo una vez; marcar los elementos como puntero a const. Consulte C++ Core Guidelines con.4.

C26496 USE_CONST_FOR_VARIABLE
La variable "variable" solo se asigna una vez; márquela como const. Consulte C++ Core Guidelines con.4.

C26497 USE_CONSTEXPR_FOR_FUNCTION
Esta función function se puede marcar como constexpr si se desea la evaluación en tiempo de compilación. Consulte C++ Core Guidelines F.4.

C26498 USE_CONSTEXPR_FOR_FUNCTIONCALL
Esta llamada a función function puede usar constexpr si se desea la evaluación en tiempo de compilación. Consulte C++ Core Guidelines con.5.

Grupo TYPE

C26437 DONT_SLICE
No segmentar. Consulte C++ Core Guidelines ES.63.

C26465 NO_CONST_CAST_UNNECESSARY
No usar const_cast para desechar const. const_cast no es obligatorio; esta conversión no elimina la declaración como const o la volatilidad. Consulte C++ Core Guidelines Type.3.

C26466 NO_STATIC_DOWNCAST_POLYMORPHIC
No usar conversiones de restricción static_cast. Una conversión de un tipo polimórfico debe usar dynamic_cast. Vea Type.2 de C++ Core Guidelines.

C26471 NO_REINTERPRET_CAST_FROM_VOID_PTR
No use reinterpret_cast. Una conversión de un valor nulo* puede usar static_cast. Consulte C++ Core Guidelines Type.1.

C26472 NO_CASTS_FOR_ARITHMETIC_CONVERSION
No usar un elemento static_cast para conversiones aritméticas. Usar la inicialización de llaves, gsl::narrow_cast o gsl::narrow. Consulte C++ Core Guidelines Type.1.

C26473 NO_IDENTITY_CAST
No convertir entre tipos de puntero donde el tipo de origen y el tipo de destino sean iguales. Consulte C++ Core Guidelines Type.1.

C26474 NO_IMPLICIT_CAST
No convertir entre tipos de puntero cuando la conversión podría ser implícita. Consulte C++ Core Guidelines Type.1.

C26475 NO_FUNCTION_STYLE_CASTS
No usar conversiones C de estilo de función. Consulte C++ Core Guidelines ES.49.

C26490 NO_REINTERPRET_CAST
No use reinterpret_cast. Consulte C++ Core Guidelines Type.1.

C26491 NO_STATIC_DOWNCAST
No usar conversiones de restricción static_cast. Vea Type.2 de C++ Core Guidelines.

C26492 NO_CONST_CAST
No usar const_cast para desechar const. Consulte C++ Core Guidelines Type.3.

C26493 NO_CSTYLE_CAST
No usar conversiones de estilo C. Consulte C++ Core Guidelines Type.4.

C26494 VAR_USE_BEFORE_INIT
La variable "variable" no está inicializada. Inicializar siempre un objeto. Consulte C++ Core Guidelines Type.5.

C26495 MEMBER_UNINIT
La variable "variable" no está inicializada. Inicializar siempre una variable miembro. Consulte C++ Core Guidelines Type.6.

Grupo BOUNDS

C26446 USE_GSL_AT
Dar preferencia al uso de gsl::at() en lugar de un operador de subíndice desactivado. Consulte C++ Core Guidelines: Bounds.4: No usar funciones de biblioteca estándar ni tipos en los que no se hayan comprobado los límites.

C26481 NO_POINTER_ARITHMETIC
No usar aritmética de punteros. Use un intervalo en su lugar. Consulte C++ Core Guidelines, límites.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 está fuera de los límites (0, bound) de la variable "variable". Indexar solo 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 degradación de matriz a puntero. Consulte C++ Core Guidelines Bounds.3.

Grupo GSL

C26445 NO_SPAN_REF
Una referencia a gsl::span o std::string_view puede indicar un problema de duración. Consulte C++ Core Guidelines GSL.view: Vistas

C26446 USE_GSL_AT
Dar preferencia al uso de gsl::at() en lugar de un operador de subíndice desactivado. Consulte C++ Core Guidelines: Bounds.4: No usar funciones de biblioteca estándar ni tipos en los que no se hayan comprobado los límites.

C26448 USE_GSL_FINALLY
Considere la posibilidad de usar gsl::finally si está prevista la acción final. Consulte C++ Core Guidelines: GSL.util: Utilidades.

C26449 NO_SPAN_FROM_TEMPORARY
Los valores gsl::span o std::string_view creados a partir de un valor temporal no serán válidos cuando este se invalide. Consulte C++ Core Guidelines GSL.view: Vistas.

Advertencias en desuso

Las siguientes advertencias están presentes en un primero conjunto de reglas experimentales del comprobador de directrices principales, pero ahora están en desuso y se pueden omitir de forma segura. Las advertencias se sustituyen por 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

Consulte también

Uso de los comprobadores de C++ Core Guidelines