constexpr

¿Qué partes de la Biblioteca estándar C++14 podrían ser y qué partes se convertirán en constexpr?

Con el nuevo reglas C++14 constexpr relajadas, la programación en tiempo de compilación se vuelve mucho más expresiva. Me pre ... <cmath> y <algorithm> no están marcadas constexpr? ¿hay razones de compatibilidad hacia atrás para no hacerlo?

"constexpr if" vs " if " con optimizaciones - ¿por qué se necesita "constexpr"?

C++1z introducirá "constexpr if" - un if que tendrá una de las ramas eliminadas, basado en la condición. Parece razonable y ú ... o y no necesita que lo diga explícitamente. Así que la pregunta es: ¿Por qué se necesita" constexpr " en " constexpr si"?

Detección de constexpr con SFINAE

Estoy trabajando en la actualización de código C++ para aprovechar la nueva funcionalidad en C++11. Tengo una clase trait con ... r, pero me gustaría saber si el código es legal C++11. Especialmente porque entiendo que las reglas para SFINAE han cambiado.

¿Es posible constexpr en C++11?

¿Es posible producir un valor booleano en tiempo de compilación basado en si una expresión de C++11 es o no una expresión co ... , constexpr) en C++11? Algunas preguntas sobre SO se relacionan con esto, pero no veo una respuesta directa en ninguna parte.

Constexpr no está permitido en la declaración de especialización plantilla de amigo?

Estoy portando una base de código C++14-constexpr de Clang a la última g++-5.1. Considere el siguiente fragmento de código re ... ce una interferencia extraña entre plantillas, amigos y constexpr. ACTUALIZACIÓN : archivado como error 65977 en Bugzilla.

std:: max() y std::min() no constexpr

Acabo de notar que el nuevo estándar define min(a,b) y max(a,b) sin constexpr. Ejemplos de 25.4.7, [alg.min.max]: template& ... izeof(B) ]; char data[ MAX(sizeof(A),sizeof(B)) ]; // using a macro Cualquier razón por la que los no pueden ser constexpr?

constexpr inicializando miembro estático usando función estática

Requisitos Quiero un valor constexpr (es decir, una constante en tiempo de compilación) calculado a partir de una función c ... ón detrás de esta restricción Otras respuestas útiles también son bienvenidas, pero quizás no sean aceptadas tan fácilmente.

¿Por qué no es const std::array:: operator[] constexpr?

Estoy tratando de llenar una matriz 2D en tiempo de compilación con una función dada. Aquí está mi código: template<int H ... o una matriz simple, solo que mejor. Pero aquí hay un ejemplo, donde puedo usar matriz simple, pero no puedo usar std::array.

constexpr vs static const: cuál prefiere?

For defining compile-time constants of integral types like the following (at function and class scope), which syntax is best ... nt k2. Sin embargo, parece haber un diferente comportamiento para doubles. He creado una pregunta separada para eso aquí .

lambda como miembro estático

Estoy tratando de usar un lambda como un miembro estático, así: struct A { static constexpr auto F = [](){}; }; int m ... ue eso significa. Parece deducir correctamente el tipo de la lambda, pero solo lo declara y no lo define. ¿Cómo lo definiría?

Usando "constexpr" para usar el literal de cadena para el parámetro de plantilla

He escrito algún código para convertir const char* a int usando constexpr y por lo tanto puedo usar un const char* como argum ... Por ejemplo OUT<"String"> será legal (y convertir "String" a integer). Cualquier ayuda será apreciada, muchas gracias.

en línea vs constexpr?

Con el nuevo estándar de C++11, ¿cuándo debo usar la palabra clave inline sobre la palabra clave constexpr? ¿La palabra clav ... constante, como llamar a foo(x) en una variable no-constexpr? ¿Es esto un error en el GCC o es realmente parte del estándar?

Cómo declarar constexpr extern?

¿Es posible declarar una variable extern constexpr y definirla en otro archivo? Lo intenté pero el compilador da error: ... ración de constexpr variable 'i' no es una definición In .h: extern constexpr int i; In .cpp: constexpr int i = 10;

static assert on initializer list:: size()

¿Por qué no se permite std::initializer_list::size en un static_assert, aunque esté declarado como constexpr en mi libstdc++ ... lic: constexpr int size() { return 5; } }; int main() { A a; static_assert(a.size() == 4, "oh no!"); return 0; }

¿Se puede lanzar una excepción desde el operador ternario?

A veces es conveniente o incluso necesario tener una función que solo una declaración (es necesario cuando se devuelve un con ... que la pregunta: ¿Se pueden lanzar excepciones desde el operador condicional y, si es así, qué va mal con el código anterior?

Mutar un int dentro de una función constexpr

¿Por qué puedo hacer esto: constexpr auto i_can() { int a = 8; a = 9; //... } Pero no puedo hacer esto: const ... e especificaciones de biblioteca estándar? reference std::array<T, N>::operator[](size_t) no es actualmente constexpr.

¿Por qué debe construirse una cadena en tiempo de ejecución? [duplicar]

Esta pregunta ya tiene una respuesta aquí: ¿Es posible usar std::string en un constexpr? ... ar std::string en un constexpr? pero no toca la ¿por qué std::string no puede ser un literal que es el núcleo de la pregunta.