limite de profundidade constexpr com clang (fconstexpr-depth não parece funcionar)
Existe alguma maneira de configurar a profundidade de instanciação constexpr? Estou executando com -fconstexpr-depth = 4096 (usando clang / XCode).
Mas ainda assim falha ao compilar esse código com erro: a variável constexpr fib_1 deve ser inicializada por uma expressão constante. O código falha independentemente de a opção -fconstexpr-depth = 4096 estar configurada ou não.
Isso é um bug com clang ou é esperado que se comporte dessa maneira. Nota: isto funciona bem até que fib_cxpr (26), 27 é quando começa a falhar.
Código:
constexpr int fib_cxpr(int idx) {
return idx == 0 ? 0 :
idx == 1 ? 1 :
fib_cxpr(idx-1) + fib_cxpr(idx-2);
}
int main() {
constexpr auto fib_1 = fib_cxpr(27);
return 0;
}