Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Функция "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 для значений, которые можно вычислить во время компиляции