Resultados de la búsqueda a petición "constexpr"
¿Puedo obtener nombres de tipo C ++ de una manera constexpr?
Me gustaría usar el nombre de un tipo en tiempo de compilación. Por ejemplo, supongamos que he escrito: constexpr size_t my_strlen(const char* s) { const char* cp = s; while(*cp != '\0') { cp++; }; return cp - s; }y ahora quiero tener: template ...
Error de compilación de CRTP
Lo siguiente se compilará con GCC 5.2 pero no con Visual Studio 2015. template <typename Derived> struct CRTP { static constexpr int num = Derived::value + 1; }; struct A : CRTP<A> { static constexpr int value = 5; };Se queja de queA no tiene un ...
¿Por qué debería preferir static constexpr int en una clase sobre enum para las constantes integrales de nivel de clase?
Actualización de C ++ 17: static constexpr las variables son implícitamenteinline entonces no hay definición externa necesaria. Pregunta original Digamos que tengo una lista de constantes como struct Cls { static constexpr int N = 32; static ...
Inicializando un constexpr con un const, - int vs float
Me pregunto por qué el enteroii se inicia en tiempo de compilación, pero no el flotadorff aquí: int main() { const int i = 1; constexpr int ii = i; const float f = 1.0; constexpr float ff = f; }Esto es lo que sucede cuando intento compilar: > ...
Lanzar en la función constexpr
El siguiente fragmento de código se compila en clang ++ 3.7.0, pero g ++ 5.3.1 lo niega. Ambos tienen-std=c++14 opción. ¿Qué compilador es correcto? ¿Alguien sabe en qué parte del estándar se habla de esto? Gracias. #include <stdexcept> using ...
Autoinicialización de una variable constexpr estática, ¿está bien formada?
Dada la siguiente declaración en el espacio de nombres global: constexpr int x = x;¿Está bien formado? El borrador de la sección estándar C ++ 143.6.2 [basic.start.init] dice: Las variables con duración de almacenamiento estático (3.7.1) o ...
Por lo que puedo decir, la función a continuación no es constexpr, pero el código se compila en clang y g ++. ¿Qué me estoy perdiendo?
Obtuve este ejemplo de §5.19 / 2 en N4140: constexpr int incr(int &n) { return ++n; }Por lo que puedo decir, esto no es unconstexpr función. Pero el fragmento se compila en clang y g ++. Verejemplo en vivo ...
¿Por qué no es constante std :: array :: operator [] no constexpr?
Estoy tratando de llenar una matriz 2D en tiempo de compilación con una función determinada. Aquí está mi 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 ...
¿Qué significa "envenenar una función" en C ++?
Al final de la charla de Scott Schurr"Presentandoconstexpr"en CppCon [https://youtu.be/fZjYCQ8dzTc?t=3679], pregunta "¿Hay alguna manera de envenenar una función"? Luego explica que esto se puede hacer (aunque de manera no estándar) ...
Error de compilación de Constexpr usando std :: acos con clang ++ no g ++
Quiero experimentar con la migración de un proyecto de gcc a clang ++. Admito ignorancia de mi parte, no estoy seguro de por qué el siguiente fragmento de código template <typename T> constexpr T pi{std::acos(T(-1.0))};compila ...