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

1 la respuesta

¿Cómo forzar la propagación constante a través de una función en línea?

Estoy tratando de obligar al preprocesador a que realice algunos cálculos matemáticos para que se propague una constante en el ensamblaje en línea. Aquí está el caso reducido: inline unsigned int RotateRight(unsigned char value, unsigned int ...

1 la respuesta

Inicializando variables y clases constexpr estáticas dentro de una estructura

Aquí está mi ejemplo de código de trabajo: #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 constexpr ...

1 la respuesta

C ++ 14: Inicializando variables constexpr a partir de valores de parámetros

Digamos que tengo una clase que puede devolver una expresión constante a través de unconstexpr función: template<int N> struct Foo { constexpr int Bar() const { return N; } };Si quisiera inicializar valores constexpr deFoo::Bar(), ¿cómo debo ...

5 la respuesta

¿Por qué los algoritmos std :: constexpr y cuáles podrían ser?

¿Por qué no hay ninguno?std::algorithm métodosconstexpr? Si entiendo las nuevas reglas de C ++ 14 correctamente, muchos de estos métodos podrían serconstexpr. Por ejemplo, ¿por qué no puedostd::find serconstexpr? static constexpr ...

2 la respuesta

¿Agregar 'constexpr' puede cambiar el comportamiento?

Dados dos programas donde la única diferencia en el código fuente es la presencia o ausencia de unoconstexpr, ¿es posible que cambie el significado del programa? En otras palabras, si hubiera una opción de compilación para pedirle al compilador ...

2 la respuesta

En C ++ 14, ¿puede un miembro constexpr cambiar un miembro de datos?

En C ++ 14, ya queconstexpr no están implícitamenteconst ya, puede unconstexpr La función miembro modifica un miembro de datos de una clase: struct myclass { int member; constexpr myclass(int input): member(input) {} constexpr void f() {member = ...

1 la respuesta

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 ...

2 la respuesta

¿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) ...

4 la respuesta

¿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 ...

2 la respuesta

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 ...