Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
Функция "function" является constexpr, помечайте переменную "переменную" constexpr, если необходимо оценить время компиляции (con.5)
Это правило помогает обеспечить выполнение Con.5: используйте constexpr для значений, которые можно вычислить во время компиляции в основных руководствах по C++ Core.
Замечания
Предупреждение активируется путем назначения результата 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: используется constexpr для значений, которые можно вычислить во время компиляции