경고 C26498

'function' 함수는 constexpr이고 컴파일 시간 계산이 필요한 경우 변수 'variable' constexpr을 표시합니다(con.5).

이 규칙은 C++ 핵심 지침에서 Con.5를 적용하는 데 도움이 됩니다. 컴파일 시간에 계산할 수 있는 값에 constexpr을 사용합니다.

설명

이 경고는 초기 할당 후에 값이 변경되지 않는 변수constexpr가 아닌 모든 변수에 함수의 결과를 constexpr 할당하여 트리거됩니다.

코드 분석 이름: USE_CONSTEXPR_FOR_FUNCTIONCALL

예시

이 샘플 코드는 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;
}

문제를 해결하려면 다음을 표시 val1 합니다.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;
}

참고 항목

C26497
C26814
Con.5