Resultados da pesquisa a pedido "constexpr"

1 a resposta

Inicializando variáveis e classes estáticas constexpr dentro de uma estrutura

Aqui está o meu exemplo de código de trabalho: #include <iostream> template<typename B> class b { public: int y; constexpr b(int x) : y(x) { } constexpr void sayhi() { std::cout << "hi" << std::endl; } }; template<int x> struct A { static ...

1 a resposta

Como forçar a propagação de const através de uma função embutida?

Estou tentando coagir o pré-processador a realizar algumas contas para mim, para que uma constante seja propagada no assembly embutido. Aqui está o caso reduzido: inline unsigned int RotateRight(unsigned char value, unsigned int amount) ...

1 a resposta

C ++ 14: Inicializando variáveis constexpr a partir de valores de parâmetros

Digamos que eu tenha uma classe que possa retornar uma expressão constante por meio de umconstexpr função: template<int N> struct Foo { constexpr int Bar() const { return N; } };Se eu quisesse inicializar valores constexpr deFoo::Bar(), como ...

5 a resposta

Por que std :: algoritmos não são constexpr e qual poderia ser?

Por que não hástd::algorithm métodosconstexpr? Se eu entender as novas regras do C ++ 14 corretamente, muitos desses métodos podem serconstexpr. Por exemplo, por que nãostd::find estarconstexpr? static constexpr std::array<char, 4> DnaBases ...

2 a resposta

A adição de 'constexpr' pode alterar o comportamento?

Dados dois programas em que a única diferença no código fonte é a presença ou ausência de umconstexpr, é possível que o significado do programa mude? Em outras palavras, se houvesse uma opção de compilador para solicitar ao compilador que se ...

2 a resposta

No C ++ 14, um membro constexpr pode alterar um membro de dados?

Em C ++ 14, desdeconstexpr não estão implicitamenteconst mais, podeconstexpr função membro modificar um membro de dados de uma classe: struct myclass { int member; constexpr myclass(int input): member(input) {} constexpr void f() {member = 42;} ...

1 a resposta

Erro de compilação constexpr usando std :: acos com clang ++ não g ++

Quero experimentar a migração de um projeto do gcc para o clang ++. Eu admito ignorância da minha parte, não sei por que o seguinte código template <typename T> constexpr T pi{std::acos(T(-1.0))};compila silenciosamente com g ++, mas clang ++ ...

2 a resposta

O que significa "envenenar uma função" em C ++?

No final da palestra de Scott Schurr"Apresentandoconstexpr"na CppCon [https://youtu.be/fZjYCQ8dzTc?t=3679], ele pergunta "Existe uma maneira de envenenar uma função"? Ele então explica que isso pode ser feito (embora de maneira não padronizada) ...

2 a resposta

Até onde eu sei, a função abaixo não é constexpr, mas o código é compilado em clang e g ++. o que estou perdendo?

Eu peguei este exemplo do §5.19 / 2 no N4140: constexpr int incr(int &n) { return ++n; }Tanto quanto posso dizer, este não é umconstexpr função. Mas o trecho é compilado no clang e no g ++. Vejoexemplo ao vivo ...

4 a resposta

Por que non-const std :: array :: operator [] não constexpr?

Estou tentando preencher uma matriz 2D em tempo de compilação com uma determinada função. Aqui está o meu código: template<int H, int W> struct Table { int data[H][W]; //std::array<std::array<int, H>, W> data; // This does not work ...