ExpertiDict

C++ · Avançado · Inglês · Técnico

consteval

ˈkɑːnst.ɪˌvælpalavra-chave

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ável

Exemplos

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.

Veja também

Todos os termos de C++