Compartir a través de


Advertencia C26498

La función 'function' es constexpr, mark variable "variable" constexpr si se desea la evaluación en tiempo de compilación (con.5)

Esta regla ayuda a aplicar Con.5 de C++ Core Guidelines: use constexpr para los valores que se puedan calcular en tiempo de compilación.

Comentarios

La advertencia se desencadena asignando el resultado de una función constexpr a cualquier variable que no sea constexpr cuyo valor no cambie después de la asignación inicial.

Nombre de análisis de código: USE_CONSTEXPR_FOR_FUNCTIONCALL

Ejemplo

Este código de ejemplo muestra dónde puede aparecer C26498:

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 corregir los problemas, marque val1 y val2 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;
}

Consulte también

C26497
C26814
con.5