En C++ 11 es std::sqrt
definido como constexpr
, es decir, ¿puede usarse legalmente desde otras funciones constexpr
o en contextos de tiempo de compilación como tamaños de matriz o argumentos de plantilla? g ++ parece permitirlo (usando -std=c++0x
), pero no estoy seguro de poder tomar eso como autoritario dado que la compatibilidad con C++ 0x/C++ 11 aún está incompleta. El hecho de que parece que no puedo encontrar nada en Internet me hace dudar.En C++ 11 ¿está definido sqrt como constexpr?
Parece que esto debería ser algo que uno podría descubrir fácilmente usando Google, pero lo he intentado (durante 40 minutos ...) y no pude encontrar nada. Pude encontrar varias propuestas para agregar constexpr a varias partes de la biblioteca estándar (como por ejemplo this one), pero nada sobre sqrt
u otras funciones matemáticas.
Es éste declaró que no explícitamente? 26.8 C library no hace referencia a constexpr. Una implementación seguramente todavía estaría de acuerdo si proporcionara implementaciones de función constexpr además de aquellas ordenadas sin. – user2023370
@ user643722: una implementación de biblioteca estándar * podría * definir una versión 'constexpr'. Pero no es * obligatorio * hacerlo, y por lo tanto no se puede confiar realmente en eso. –