Partage via


Avertissement C26498

La fonction « fonction » est constexpr ; marquer la variable « variable » en tant que constexpr si l’évaluation au moment de la compilation est souhaitée (con.5)

Cette règle permet d’appliquer Con.5 des C++ Core Guidelines : utiliser constexpr pour les valeurs qui peuvent être calculées au moment de la compilation.

Notes

L’avertissement est déclenché en affectant le résultat d’une fonction constexpr à une variable non-constexpr dont la valeur ne change pas après l’affectation initiale.

Nom de l’analyse du code : USE_CONSTEXPR_FOR_FUNCTIONCALL

Exemple

Cet exemple de code montre où C26498 peut apparaître :

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;
}

Pour résoudre les problèmes, marquez val1 et val2 en tant que constexpr :

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;
}

Voir aussi

C26497
C26814
Con.5