Partilhar via


Referência do verificador de diretrizes principais do C++

Esta seção lista os avisos do Verificador de Diretrizes Principais do C++. Para obter informações sobre Análise de Código, consulte /analyze (Análise de Código) e Início Rápido: Análise de Código para C/C++.

Observação

Alguns avisos pertencem a mais de um grupo e nem todos os avisos têm um tópico de referência completo.

Grupo OWNER_POINTER

C26402 DONT_HEAP_ALLOCATE_MOVABLE_RESULT
Retorne um objeto com escopo em vez de um heap-allocated se ele tiver um construtor move. Consulte C++ Core Guidelines R.3.

C26403 RESET_OR_DELETE_OWNER
Redefina ou exclua explicitamente um ponteiro T> do proprietário<'variável'. Consulte C++ Core Guidelines R.3.

C26404 DONT_DELETE_INVALID
Não exclua um proprietário<T> que possa estar em estado inválido. Consulte C++ Core Guidelines R.3.

C26405 DONT_ASSIGN_TO_VALID
Não atribua a um proprietário<T> que possa estar em estado válido. Consulte C++ Core Guidelines R.3.

C26406 DONT_ASSIGN_RAW_TO_OWNER
Não atribua um ponteiro bruto a um proprietário<T>. Consulte C++ Core Guidelines R.3.

C26407 DONT_HEAP_ALLOCATE_UNNECESSARILY
Prefira objetos com escopo, não aloque heap-allocate desnecessariamente. Consulte C++ Core Guidelines R.5.

C26429 USE_NOTNULL
O símbolo 'símbolo' nunca é testado quanto à nulidade, pode ser marcado como not_null. Consulte C++ Core Guidelines F.23.

C26430 TEST_ON_ALL_PATHS
O símbolo 'símbolo' não é testado quanto à nulidade em todos os caminhos. Consulte C++ Core Guidelines F.23.

C26431 DONT_TEST_NOTNULL
O tipo de expressão 'expr' já é gsl::not_null. Não teste a nulidade. Consulte C++ Core Guidelines F.23.

Grupo RAW_POINTER

C26400 NO_RAW_POINTER_ASSIGNMENT
Não atribua o resultado de uma alocação ou uma chamada de função com um valor de retorno T> de proprietário<a um ponteiro bruto, use o proprietário<T>. Consulte C++ Core Guidelines I.11.

C26401 DONT_DELETE_NON_OWNER
Não exclua um ponteiro bruto que não seja um proprietário<T>. Consulte C++ Core Guidelines I.11.

C26402 DONT_HEAP_ALLOCATE_MOVABLE_RESULT
Retorne um objeto com escopo em vez de um heap-allocated se ele tiver um construtor move. Consulte C++ Core Guidelines R.3.

C26408 NO_MALLOC_FREE
Evite malloc() e free(), prefira a versão nothrow do novo com exclusão. Consulte C++ Core Guidelines R.10.

C26409 NO_NEW_DELETE
Evite chamar novo e excluir explicitamente, use std::make_unique<T> em vez disso. Consulte C++ Core Guidelines R.11.

C26429 USE_NOTNULL
O símbolo 'símbolo' nunca é testado quanto à nulidade, pode ser marcado como not_null. Consulte C++ Core Guidelines F.23.

C26430 TEST_ON_ALL_PATHS
O símbolo 'símbolo' não é testado quanto à nulidade em todos os caminhos. Consulte C++ Core Guidelines F.23.

C26431 DONT_TEST_NOTNULL
O tipo de expressão 'expr' já é gsl::not_null. Não teste a nulidade. Consulte C++ Core Guidelines F.23.

C26481 NO_POINTER_ARITHMETIC
Não use aritmética de ponteiro. Use span em vez disso. Consulte C++ Core Guidelines Bounds.1.

C26485 NO_ARRAY_TO_POINTER_DECAY
Expressão 'expr': Nenhuma matriz para decaimento de ponteiro. Consulte C++ Core Guidelines Bounds.3.

Grupo UNIQUE_POINTER

C26410 NO_REF_TO_CONST_UNIQUE_PTR
O parâmetro 'parâmetro' é uma referência ao const ponteiro exclusivo, use const T* ou const T& em vez disso. Consulte C++ Core Guidelines R.32.

C26411 NO_REF_TO_UNIQUE_PTR
O parâmetro 'parâmetro' é uma referência ao ponteiro exclusivo e nunca é reatribuído ou redefinido, use T* ou T& em vez disso. Consulte C++ Core Guidelines R.33.

C26414 RESET_LOCAL_SMART_PTR
Mova, copie, reatribua ou redefina um "símbolo" de ponteiro inteligente local. Consulte C++ Core Guidelines R.5.

C26415 SMART_PTR_NOT_NEEDED
O parâmetro de ponteiro inteligente 'symbol' é usado apenas para acessar o ponteiro contido. Em vez disso, use T* ou T& em vez disso. Consulte C++ Core Guidelines R.30.

Grupo SHARED_POINTER

C26414 RESET_LOCAL_SMART_PTR
Mova, copie, reatribua ou redefina um "símbolo" de ponteiro inteligente local. Consulte C++ Core Guidelines R.5.

C26415 SMART_PTR_NOT_NEEDED
O parâmetro de ponteiro inteligente 'symbol' é usado apenas para acessar o ponteiro contido. Em vez disso, use T* ou T& em vez disso. Consulte C++ Core Guidelines R.30.

C26416 NO_RVALUE_REF_SHARED_PTR
O parâmetro de ponteiro compartilhado 'symbol' é passado pela referência rvalue. Em vez disso, passe pelo valor. Consulte C++ Core Guidelines R.34.

C26417 NO_LVALUE_REF_SHARED_PTR
O parâmetro de ponteiro compartilhado 'symbol' é passado por referência e não redefinido ou reatribuído. Em vez disso, use T* ou T& em vez disso. Consulte C++ Core Guidelines R.35.

C26418 NO_VALUE_OR_CONST_REF_SHARED_PTR
O parâmetro de ponteiro compartilhado 'symbol' não é copiado ou movido. Em vez disso, use T* ou T& em vez disso. Consulte C++ Core Guidelines R.36.

Grupo DECLARAÇÃO

C26426 NO_GLOBAL_INIT_CALLS
O inicializador global chama uma função não-constexpr de 'símbolo'. Ver C++ Core Guidelines I.22.

C26427 NO_GLOBAL_INIT_EXTERNS
O inicializador global acessa o objeto externo 'symbol'. Ver C++ Core Guidelines I.22.

C26444 NO_UNNAMED_RAII_OBJECTS
Evite objetos sem nome com construção personalizada e destruição. Consulte ES.84: Não (tente) declarar uma variável local sem nome.

Grupo CLASS

C26432 DEFINE_OR_DELETE_SPECIAL_OPS
Se você definir ou excluir qualquer operação padrão no tipo 'símbolo', defina ou exclua todas. Consulte C++ Core Guidelines C.21.

C26433 OVERRIDE_EXPLICITLY
A função «símbolo» deve ser marcada com «substituição». Ver C.128: As funções virtuais devem especificar exatamente uma das funções virtual, de substituição ou final.

C26434 DONT_HIDE_METHODS
A função 'symbol_1' oculta uma função não virtual 'symbol_2'. Consulte C++ Core Guidelines C.128.

C26435 SINGLE_VIRTUAL_SPECIFICATION
A função 'símbolo' deve especificar exatamente uma de 'virtual', 'substituir' ou 'final'. Ver C.128: As funções virtuais devem especificar exatamente uma das funções virtual, de substituição ou final.

C26436 NEED_VIRTUAL_DTOR
O tipo 'símbolo' com uma função virtual precisa de um destruidor virtual público ou não virtual protegido. Consulte C++ Core Guidelines C.35.

C26443 NO_EXPLICIT_DTOR_OVERRIDE
O destruidor de substituição não deve usar especificadores explícitos de "substituição" ou "virtual". Ver C.128: As funções virtuais devem especificar exatamente uma das funções virtual, de substituição ou final.

Grupo STYLE

C26438 NO_GOTO
Evite goto. Consulte as diretrizes principais do C++ ES.76.

Grupo FUNCTION

C26439 SPECIAL_NOEXCEPT
Este tipo de função pode não lançar. Declare-o noexcept. Consulte C++ Core Guidelines F.6.

C26440 DECLARE_NOEXCEPT
A função «símbolo» pode ser declarada noexcept. Consulte C++ Core Guidelines F.6.

C26447 DONT_THROW_IN_NOEXCEPT
A função é declarada noexcept , mas chama uma função que pode gerar exceções. Consulte C++ Core Guidelines: F.6: Se sua função não pode ser lançada, declare-a não, exceto.

Grupo SIMULTANEIDADE

C26441 NO_UNNAMED_GUARDS
Os objetos de proteção devem ser nomeados. Consulte C++ Core Guidelines cp.44.

Grupo CONST

C26460 USE_CONST_REFERENCE_ARGUMENTS
O argumento de referência «argumento» para a função «função» pode ser marcado como const. Consulte C++ Core Guidelines con.3.

C26461 USE_CONST_POINTER_ARGUMENTS:
O argumento de ponteiro 'argumento' para a função 'função' pode ser marcado como um ponteiro para const. Consulte C++ Core Guidelines con.3.

C26462 USE_CONST_POINTER_FOR_VARIABLE
O valor apontado por 'variável' é atribuído apenas uma vez, marque-o como um ponteiro para const. Consulte C++ Core Guidelines con.4.

C26463 USE_CONST_FOR_ELEMENTS
Os elementos da matriz 'matriz' são atribuídos apenas uma vez, marcar elementos const. Consulte C++ Core Guidelines con.4.

C26464 USE_CONST_POINTER_FOR_ELEMENTS
Os valores apontados pelos elementos da matriz 'matriz' são atribuídos apenas uma vez, marcar elementos como ponteiro para const. Consulte C++ Core Guidelines con.4.

C26496 USE_CONST_FOR_VARIABLE
A variável 'variável' é atribuída apenas uma vez, marque-a como const. Consulte C++ Core Guidelines con.4.

C26497 USE_CONSTEXPR_FOR_FUNCTION
Esta função pode ser marcada constexpr se a avaliação em tempo de compilação for desejada. Consulte C++ Core Guidelines F.4.

C26498 USE_CONSTEXPR_FOR_FUNCTIONCALL
Esta função de chamada de função pode usar constexpr se a avaliação em tempo de compilação for desejada. Consulte C++ Core Guidelines con.5.

Grupo TYPE

C26437 DONT_SLICE
Não fatiar. Consulte C++ Core Guidelines ES.63.

C26465 NO_CONST_CAST_UNNECESSARY
Não use const_cast para descartar const. const_cast não é obrigatório; constância ou volatilidade não está sendo removida por esta conversão. Consulte C++ Core Guidelines Type.3.

C26466 NO_STATIC_DOWNCAST_POLYMORPHIC
Não use static_cast abatidos. Um molde de um tipo polimórfico deve usar dynamic_cast. Consulte C++ Core Guidelines Type.2.

C26471 NO_REINTERPRET_CAST_FROM_VOID_PTR
Não use reinterpret_cast. Um molde do vazio* pode usar static_cast. Consulte C++ Core Guidelines Type.1.

C26472 NO_CASTS_FOR_ARITHMETIC_CONVERSION
Não use um static_cast para conversões aritméticas. Use a inicialização da chave, gsl::narrow_cast ou gsl::narrow. Consulte C++ Core Guidelines Type.1.

C26473 NO_IDENTITY_CAST
Não transmita entre tipos de ponteiro em que o tipo de origem e o tipo de destino são os mesmos. Consulte C++ Core Guidelines Type.1.

C26474 NO_IMPLICIT_CAST
Não lance entre tipos de ponteiro quando a conversão puder estar implícita. Consulte C++ Core Guidelines Type.1.

C26475 NO_FUNCTION_STYLE_CASTS
Não use C-casts de estilo de função. Consulte C++ Core Guidelines ES.49.

C26490 NO_REINTERPRET_CAST
Não use reinterpret_cast. Consulte C++ Core Guidelines Type.1.

C26491 NO_STATIC_DOWNCAST
Não use static_cast abatidos. Consulte C++ Core Guidelines Type.2.

C26492 NO_CONST_CAST
Não use const_cast para descartar const. Consulte C++ Core Guidelines Type.3.

C26493 NO_CSTYLE_CAST
Não use moldes estilo C. Consulte C++ Core Guidelines Type.4.

C26494 VAR_USE_BEFORE_INIT
A variável 'variável' não foi inicializada. Sempre inicialize um objeto. Consulte C++ Core Guidelines Type.5.

C26495 MEMBER_UNINIT
A variável 'variável' não foi inicializada. Sempre inicialize uma variável de membro. Consulte C++ Core Guidelines Type.6.

Grupo BOUNDS

C26446 USE_GSL_AT
Prefira usar gsl::at() em vez de operador subscrito não verificado. Consulte C++ Core Guidelines: Bounds.4: Não use funções de biblioteca padrão e tipos que não são limitados verificados.

C26481 NO_POINTER_ARITHMETIC
Não use aritmética de ponteiro. Use span em vez disso. Consulte C++ Core Guidelines Bounds.1

C26482 NO_DYNAMIC_ARRAY_INDEXING
Indexe somente em matrizes usando expressões constantes. Consulte C++ Core Guidelines Bounds.2

C26483 STATIC_INDEX_OUT_OF_RANGE
O valor está fora dos limites (0, bound) da variável 'variable'. Indexe somente matrizes usando expressões constantes que estejam dentro dos limites da matriz. Consulte C++ Core Guidelines Bounds.2

C26485 NO_ARRAY_TO_POINTER_DECAY
Expressão 'expr': Nenhuma matriz para decaimento de ponteiro. Consulte C++ Core Guidelines Bounds.3

Grupo GSL

C26445 NO_SPAN_REF
Uma referência a gsl::span ou std::string_view pode ser uma indicação de um problema vitalício. Consulte C++ Core Guidelines GSL.view: Views

C26446 USE_GSL_AT
Prefira usar gsl::at() em vez de operador subscrito não verificado. Consulte C++ Core Guidelines: Bounds.4: Não use funções de biblioteca padrão e tipos que não são limitados verificados.

C26448 USE_GSL_FINALLY
Considere usar gsl::finally se a ação final for pretendida. Consulte C++ Core Guidelines: GSL.util: Utilities.

C26449 NO_SPAN_FROM_TEMPORARY
gsl::span ou std::string_view criado a partir de um temporário será inválido quando o temporário for invalidado. Consulte Diretrizes principais do C++: GSL.view: Views.

Avisos preteridos

Os avisos a seguir estão presentes em um conjunto de regras experimentais iniciais do verificador de diretrizes principais, mas agora foram preteridos e podem ser ignorados com segurança. Os avisos são substituídos pelos avisos da lista acima.

  • 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

Ver também

Usando os verificadores de diretrizes principais do C++