C++ · Intermediário · Inglês · Técnico
constexpr
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 6Exemplos
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.