Resultados da pesquisa a pedido "constexpr"

1 a resposta

O que acontece quando uma exceção é lançada ao computar um constexpr?

Ao calcular expressões constantes para inicializar umconstexpr é possível lançar exceções. Por exemplo, aqui está um exemplo em que o cálculo de uma expressão constante é protegido contra o estouro: #include <iostream> #include <stdexcept> ...

1 a resposta

Acesso à variável constexpr dentro da expressão lambda sem capturar

No exemplo a seguir, eu posso acessar oconstexpr variávelx de dentro do lambday sem capturá-lo explicitamente. Isso não é possível sex não é declarado comoconstexpr. Existem regras especiais que se aplicam aconstexpr para capturar? int foo(auto ...

1 a resposta

construtor constexpr com validação de tempo de compilação

Eu gostaria de criar uma classe com a opção de consprimento. E, é claro, gostaria de aproveitar a verificação de erros em tempo de compilação. Cadaconstexpr A função, inclusive o construtor, deve funcionar também em tempo de execução, quando os ...

1 a resposta

Por que posso chamar uma função não constexpr dentro de uma função constexpr?

Considere o seguinte código: #include <stdio.h> constexpr int f() { return printf("a side effect!\n"); } int main() { char a[f()]; printf("%zd\n", sizeof a); }Eu esperava que o compilador reclamasse da chamada paraprintf dentrof, Porquef deve ...

6 a resposta

enum vs constexpr para constantes estáticas reais dentro de classes

Deixe-me começar declarando minha intenção. Nos dias antigos (C ++), teríamos código como: class C { public: enum {SOME_VALUE=27}; };Então poderíamos usarSOME_VALUE em todo o código como uma constante de tempo de compilação e onde quer que ...

3 a resposta

Constantes globais em C ++ 11

Quais são as melhores maneiras de declarar e definir constantes globais em C ++? Estou mais interessado no padrão C ++ 11, pois ele corrige muito a esse respeito. [EDIT (esclarecimento)]: nesta questão, "constante global" denota variável ...

4 a resposta

O constexpr é uma "dica" (como em linha) ou "uma solicitação de ligação" ao compilador?

Éconstexpr um indicador para o compilador ou exige um comportamento? O exemplo em questão é o seguinte: template<typename T> std::size_t constexpr getID() { return typeid(T).hash_code(); }hash_code é uma constante de tempo de execução, mas ...

2 a resposta

constexpr e RTTI

Eu gostaria de fazer algo assim: template <typename T> constexpr ::std::size_t type_name_hash() { return ::std::hash<::std::string>()(typeid(T).name()); }Agora, eu também não seihash nemstring estãoconstexpr, mas isso pode ser contornado, ...

2 a resposta

Forçar constexpr a ser avaliado em tempo de compilação

#include <algorithm> struct S { static constexpr int X = 10; }; int main() { return std::min(S::X, 0); };E sestd::min espera umconst int&, o compilador provavelmente gostaria de ter oS::X também definido em algum lugar, ou seja, o armazenamento ...

2 a resposta

constexpr e inicialização de um ponteiro estático const void com reinterpret cast, qual compilador está certo?

Considere o seguinte pedaço de código: struct foo { static constexpr const void* ptr = reinterpret_cast<const void*>(0x1); }; auto main() -> int { return 0; }O exemplo acima compila bem em g ++ v4.9 (Demonstração ao ...