Resultados de la búsqueda a petición "constexpr"

2 la respuesta

constexpr y RTTI

Me gustaría hacer algo como esto: template <typename T> constexpr ::std::size_t type_name_hash() { return ::std::hash<::std::string>()(typeid(T).name()); }Ahora, yo tampoco séhash nistring sonconstexpr, pero esto podría solucionarse, supongamos ...

2 la respuesta

Forzar que constexpr se evalúe en tiempo de compilación

#include <algorithm> struct S { static constexpr int X = 10; }; int main() { return std::min(S::X, 0); };Sistd::min espera unconst int&, el compilador probablemente le gustaría tener elS::X también definido en alguna parte, es decir, el ...

2 la respuesta

constexpr e inicialización de un puntero vacío const estático con reinterpretación de conversión, ¿qué compilador es el correcto?

Considere la siguiente pieza de código: struct foo { static constexpr const void* ptr = reinterpret_cast<const void*>(0x1); }; auto main() -> int { return 0; }El ejemplo anterior se compila bien en g ++ v4.9 (Demo en ...

2 la respuesta

Cómo sortear la limitación de reinterpretación de cast con constexpr

En c ++ 11, aconstexpr la expresión no puede contener reinterpretar moldes. Entonces, por ejemplo, si uno quisiera manipular los bits en un número de coma flotante, digamos para encontrar la mantisa del número: constexpr unsigned int ...

2 la respuesta

¿Por qué las plantillas permiten miembros de la función constexpr con constructores no constexpr?

Usando C ++ 14. ¿Por qué esto compilará? template<unsigned N> constexpr bool foo() { std::array<char, N> arr; return true; }pero no esto? constexpr bool foo() { std::array<char, 10> arr; // Non-constexpr constructor 'array' cannot be used in a ...

4 la respuesta

parámetros de la función constexpr como argumentos de plantilla

Estoy jugando con algún código de juguete usando c ++ 11 para descubrir un poco más sobre cómo funcionan las cosas. Durante esto me encontré con el siguiente problema que se simplifica a: template <int x, int y> class add { public: static ...

13 la respuesta

¿Cuándo debe usar la capacidad constexpr en C ++ 11?

Me parece que tener una "función que siempre devuelve 5" es romper o diluir el significado de "llamar a una función". Debe haber una razón, o una necesidad de esta capacidad o no estaría en C ++ 11. ¿Por qué está ahí? // preprocessor. #define ...

1 la respuesta

Pasando objetos constexpr alrededor

Decidí dar entonces nuevoC++14 definicion deconstexpr un giro y para aprovecharlo al máximo decidí escribir un pequeño analizador de cadenas en tiempo de compilación. Sin embargo, estoy luchando por mantener mi objetoconstexpr mientras lo pasa a ...

1 la respuesta

¿Por qué los miembros de datos no estáticos no pueden ser constexpr?

Este es un 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 }; };Pero aquí realmente me gustaría declararxVal yyVal constexpr--Me ...

1 la respuesta

¿Por qué no se define `std :: initializer_list` como un tipo literal?

Este es un seguimiento de esta pregunta:¿Es legal declarar un objeto constexpr initializer_list? [https://stackoverflow.com/questions/16063123/is-it-legal-to-declare-a-constexpr-initializer-list-object] . Desde C ++ 14, elstd::initializer_list ...