C++ · Avançado · Inglês · Técnico
consteval
Especificador do C++20 para funções imediatas, que sempre precisam ser avaliadas na compilação. Chamar com argumentos que não são constantes é erro de compilação.
Onde usar
Usado para garantir que cálculos, validações de strings ou geração de tabelas nunca rodem em tempo de execução. Diferente de constexpr, que só permite a avaliação.
Em código
consteval int quad(int x) { return x * x; }
int a = quad(4); // ok, 16 na compilação
int n = 5;
// int b = quad(n); // erro: n variávelExemplos
Make it consteval so the check can't be delayed to runtime.
Faça consteval para a checagem não ser adiada para o runtime.
The call fails to compile because n isn't a constant.
A chamada não compila porque n não é constante.
Cuidado
Não confunda com constexpr, que também pode ser executada em tempo de execução; consteval nunca pode.
Sinônimos
função imediata
Antônimos
constexpr
Origem
Contração de constant evaluation, avaliação constante.