Udostępnij za pośrednictwem


Ostrzeżenie C26498

Funkcja "function" jest constexpr, oznacz zmienną "zmienną" constexpr, jeśli wymagana jest ocena czasu kompilacji (con.5)

Ta reguła pomaga wymusić con.5 z podstawowych wytycznych języka C++: użyj constexpr dla wartości, które można obliczyć w czasie kompilacji.

Uwagi

Ostrzeżenie jest wyzwalane przez przypisanie wyniku constexpr funkcji do dowolnej zmiennej innej niżconstexpr zmienna, której wartość nie zmienia się po początkowym przypisaniu.

Nazwa analizy kodu: USE_CONSTEXPR_FOR_FUNCTIONCALL

Przykład

Ten przykładowy kod pokazuje, gdzie może pojawić się kod 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;
}

Aby rozwiązać problemy, oznacz i val1val2constexpr:

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

Zobacz też

C26497
C26814
Con.5