Bagikan melalui


Peringatan C26498

Fungsi 'fungsi' adalah constexpr, variabel tandai 'variabel' constexpr jika evaluasi waktu kompilasi diinginkan (con.5)

Aturan ini membantu memberlakukan Con.5: Gunakan constexpr untuk nilai yang dapat dihitung pada waktu kompilasi dalam Panduan Inti C++.

Keterangan

Peringatan dipicu dengan menetapkan hasil constexpr fungsi ke variabel non-apaconstexpr pun yang nilainya tidak berubah setelah penetapan awal.

Nama analisis kode: USE_CONSTEXPR_FOR_FUNCTIONCALL

Contoh

Kode sampel ini menunjukkan di mana C26498 mungkin muncul:

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

Untuk memperbaiki masalah, tandai val1 dan val2constexpr:

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

Lihat juga

C26497
C26814
Con.5: Gunakan constexpr untuk nilai yang dapat dikomputasi pada waktu kompilasi