Resultados da pesquisa a pedido "constexpr"
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 ...
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 ...
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 ...
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 ...
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 ...
É 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 ...
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 ...
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 ...
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 ...
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 ...