2011-10-15 11 views

Respuesta

14

El constructor de std::string que toma un puntero a char no es constexpr. En las funciones constexpr, solo puede usar las funciones que son constexpr.

+0

Gracias, no sabía eso antes. – smallB

+2

+1 y la razón por la que ese constructor no puede ser 'constexpr' es que tiene efectos secundarios (a saber, asignación) que no pueden llevarse a cabo en tiempo de compilación. –

+0

¿Pero no crees que esto es (este ejemplo particular) un poco tonto? el literal de la cadena es const, por lo que creo que el ctor de la cadena debe hacerse constexpr para permitir tales construcciones en el futuro. – smallB

Cuestiones relacionadas