Resultados da pesquisa a pedido "constexpr"

1 a resposta

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 ...

3 a resposta

Como o tempo de compilação pode ser (exponencialmente) mais rápido que o tempo de execução?

O código abaixo calcula os números de Fibonacci por umexponencialmente lento algoritmo: #include <cstdlib> #include <iostream> #define DEBUG(var) { std::cout << #var << ": " << (var) << std::endl; } constexpr auto fib(const size_t n) -> long ...

2 a resposta

Como contornar a limitação de reinterpretação de conversão com constexpr

Em c ++ 11, umconstexpr A expressão não pode conter reinterpretações de conversão. Por exemplo, se alguém quiser manipular os bits em um número de ponto flutuante, diga para encontrar a mantissa do número: constexpr unsigned int mantissa(float ...

4 a resposta

parâmetros da função constexpr como argumentos do modelo

Estou brincando com algum código de brinquedo usando c ++ 11 para descobrir um pouco mais sobre como as coisas funcionam. Durante isso, deparei-me com a seguinte questão que simplifica: template <int x, int y> class add { public: static ...

2 a resposta

Por que os modelos permitem membros da função constexpr com construtores não constexpr?

Usando C ++ 14. Por que isso irá compilar: template<unsigned N> constexpr bool foo() { std::array<char, N> arr; return true; }mas não é isso? constexpr bool foo() { std::array<char, 10> arr; // Non-constexpr constructor 'array' cannot be used ...

3 a resposta

É possível usar std :: string em um constexpr?

Usando C ++ 11, Ubuntu 14.04, cadeia de ferramentas padrão do GCC. Este código falha: constexpr std::string constString = "constString";erro: o tipo 'const string {aka const std :: basic_string}' da variável constexpr 'constString' não ...

1 a resposta

Passando objetos constexpr ao redor

Eu decidi dar então novoC++14 definição deconstexpr um giro e para tirar o máximo proveito dele, decidi escrever um pequeno analisador de string em tempo de compilação. No entanto, estou lutando para manter meu objetoconstexpr enquanto passa para ...

1 a resposta

Por que membros de dados não estáticos não podem ser constexpr?

Este é um código válido: struct S { constexpr S(int x, int y): xVal(x), yVal(y) {} constexpr S(int x): xVal(x) {} constexpr S() {} const int xVal { 0 }; const int yVal { 0 }; };Mas aqui eu realmente gostaria de declararxVal eyVal constexpr--como ...

1 a resposta

Por que `std :: initializer_list` não é definido como um tipo literal?

Este é um acompanhamento desta pergunta:É legal declarar um objeto constexpr initializer_list? [https://stackoverflow.com/questions/16063123/is-it-legal-to-declare-a-constexpr-initializer-list-object] . Desde o C ++ 14, ostd::initializer_list ...

1 a resposta

Compreendendo o exemplo de conversão de lvalue em rvalue

É difícil entender como esse código (um exemplo do rascunho do padrão C ++ 14[conv.lval]) invoca um comportamento indefinido parag(false). Porqueconstexpr tornar o programa válido? Além disso, o que significa "não acessay.n"? Nas duas chamadas ...