ExpertiDict

C++ · Intermediário · Inglês · Técnico

constexpr

ˈkɑːnstɛksprpalavra-chave

Especificador que marca variáveis e funções que podem ser avaliadas na compilação. Com argumentos constantes, o resultado vira constante, usável em tamanhos de array e templates.

Onde usar

Usado em tabelas, cálculos fixos e validações que ficam sem custo em tempo de execução. Uma função constexpr também pode rodar em tempo de execução com argumentos comuns.

Em código

constexpr int fat(int n) {
  return n <= 1 ? 1 : n * fat(n - 1);
}
static_assert(fat(5) == 120);
int arr[fat(3)];  // tamanho 6

Exemplos

Make that table constexpr so it's computed at compile time.

Faça essa tabela constexpr para ser calculada em tempo de compilação.

This constexpr function can still run at runtime.

Essa função constexpr ainda pode rodar em tempo de execução.

Cuidado

constexpr não obriga a avaliar na compilação, só permite; para forçar, use consteval ou use o resultado em contexto constante.

Origem

Contração de constant expression, expressão constante.

Veja também

Todos os termos de C++