Resultados da pesquisa a pedido "constexpr"

1 a resposta

Autoinicialização de uma variável estática constexpr, está bem formada?

Dada a seguinte declaração no espaço para nome global: constexpr int x = x;Isso é bem formado? O rascunho da seção padrão do C ++ 143.6.2 [basic.start.init] diz: Variáveis com duração de armazenamento estático (3.7.1) ou com duração ...

2 a resposta

Jogue na função constexpr

O seguinte trecho de código é compilado no clang ++ 3.7.0, mas é negado pelo g ++ 5.3.1. Ambos têm-std=c++14 opção. Qual compilador está correto? Alguém sabe onde no padrão fala sobre isso? Obrigado. #include <stdexcept> using namespace std; ...

2 a resposta

Inicializando um constexpr com uma const, - int vs float

Eu estou querendo saber por que o número inteiroii é inicializado em tempo de compilação, mas não o floatff aqui: int main() { const int i = 1; constexpr int ii = i; const float f = 1.0; constexpr float ff = f; }É o que acontece quando tento ...

3 a resposta

Por que devo preferir constexpr estático int em uma classe ao invés de enum para constantes integrais no nível de classe?

Atualização do C ++ 17: static constexpr variáveis são implicitamenteinline então não há definição externa necessária. Pergunta original: Digamos que eu tenha uma lista de constantes como struct Cls { static constexpr int N = 32; static ...

2 a resposta

Erro de compilação do CRTP

O seguinte será compilado com o GCC 5.2, mas não com o Visual Studio 2015. template <typename Derived> struct CRTP { static constexpr int num = Derived::value + 1; }; struct A : CRTP<A> { static constexpr int value = 5; }; Reclama queA não tem ...

1 a resposta

Posso obter nomes de tipo C ++ de maneira constexpr?

Eu gostaria de usar o nome de um tipo em tempo de compilação. Por exemplo, suponha que eu tenha escrito: constexpr size_t my_strlen(const char* s) { const char* cp = s; while(*cp != '\0') { cp++; }; return cp - s; }e agora eu quero ...

3 a resposta

constexpr vs const vs constexpr const

const-vs-constexpr-on-variable [https://stackoverflow.com/a/13347355/6053907] O que o cara diz sobre o constexpr está certoif double é usado (oufloat claro). No entanto, se você alterar o tipo var dedouble para um tipo inteiro como int, char, ...

1 a resposta

Por que std :: array :: size constexpr com tipos simples (int, double,…) mas não std :: vector (GCC)?

O código a seguir: std::array<int, 4> arr1; std::array<float, arr1.size()> arr2;... compila com ambosgcc eclang Porquestd::array::size [http://en.cppreference.com/w/cpp/container/array/size]é consideradoconstexpr. Mas o seguinte não compila ...

2 a resposta

Como escrever a função de troca constexpr para alterar a endianess de um número inteiro?

Como escrever umconstexpr função para trocar endianess de um número inteiro, sem depender de extensões do compilador e você pode dar um exemplo de como fazê-lo?

2 a resposta

Por que essa função de membro estático constexpr não é vista como constexpr quando chamada?

Por que é issoconstexpr static função membro, identificada pelo//! Nah comentário, não visto comoconstexpr quando chamado? struct Item_id { enum Enum { size, position, attributes, window_rect, max_window_size, _ }; static constexpr int n_items_ ...