Compartilhar via


Aviso C26498

A função 'function' é constexpr, marca a variável 'variable' constexpr se a avaliação em tempo de compilação for desejada (con.5)

Essa regra ajuda a impor o Con.5 das Diretrizes Principais do C++: use constexpr para valores que podem ser calculados em tempo de compilação.

Comentários

O aviso é disparado atribuindo o resultado de uma função constexpr a qualquer variável não constexpr cujo valor não é alterado após a atribuição inicial.

Nome da análise de código: USE_CONSTEXPR_FOR_FUNCTIONCALL

Exemplo

Este código de exemplo mostra onde C26498 pode aparecer:

constexpr int getMyValue()
{
    return 1;
}

void foo()
{
    constexpr int val0 = getMyValue(); // no C26498
    const int val1 = getMyValue();     // C26498, C26814
    int val2 = getMyValue();           // C26498, value is never modified
    int val3 = getMyValue();           // no C26498, val3 is assigned to below.
    val3 = val3 * val2;
}

Para corrigir os problemas, marque val1 e val2constexpr:

constexpr int getMyValue()
{
    return 1;
}

void foo()
{
    constexpr int val0 = getMyValue(); // OK
    constexpr int val1 = getMyValue(); // OK
    constexpr int val2 = getMyValue(); // OK
    int val3 = getMyValue();           // OK
    val3 = val3 * val2;
}

Confira também

C26497
C26814
Con.5