Megosztás:


Figyelmeztetés C26498

A "function" függvény constexpr, jelölje meg a "variable" változót constexprként, ha fordítási idő alatti kiértékelés szükséges (con.5)

Ez a szabály segít érvényesíteni a Con.5: Használja a constexpr azokat az értékeket, amelyek fordítási időben számíthatók ki a C++ alapvető irányelvekben.

Megjegyzések

A figyelmeztetés akkor aktiválódik, ha egy constexpr függvény eredményét olyan nemconstexpr változóhoz rendeli hozzá, amelynek értéke nem változik a kezdeti hozzárendelés után.

Kódelemzés neve: USE_CONSTEXPR_FOR_FUNCTIONCALL.

példa

Ez a mintakód bemutatja, hogy hol jelenhet meg a 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;
}

A problémák megoldásához jelölje meg a következőt 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;
}

Lásd még

C26497
C26814
Con.5: Használja a fordításkor kiszámítható értékeketconstexpr