Sdílet prostřednictvím


Upozornění C26498

Funkce "function" je constexpr, označte proměnnou variable "variable" constexpr, pokud je žádoucí vyhodnocení doby kompilace (con.5).

Toto pravidlo pomáhá vynutit Con.5 z pokynů pro C++ Core: použijte constexpr pro hodnoty, které je možné vypočítat v době kompilace.

Poznámky

Upozornění se aktivuje přiřazením výsledku constexpr funkce k jakékoli proměnné,constexpr jejíž hodnota se po počátečním přiřazení nezmění.

Název analýzy kódu: USE_CONSTEXPR_FOR_FUNCTIONCALL

Příklad

Tento ukázkový kód ukazuje, kde se může objevit 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;
}

Pokud chcete tyto problémy opravit, označte val1 je a 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;
}

Viz také

C26497
C26814
Con.5