Problemas con la expresión constante

Tengo algunos problemas al compilar un código. tengo este codigo en especial

    typedef double Type;

    static const Type MAX_VALUE = __DBL_MAX__;
    static const Type MIN_VALUE = -__DBL_MAX__;

Ahora cuando trato de compilarlo. Me muestra el siguiente error

error: a call to a constructor cannot appear in a constant-expression

Cambio la definición const a constexpr. Pero muestra el siguiente error.

error: ‘constexpr’ does not name a type
note: C++0x ‘constexpr’ only available with -std=c++0x or -std=gnu++0x

¿Cómo puedo solucionar este problema?

preguntado el 12 de junio de 12 a las 17:06

No recibo tal error. ¿Está absolutamente seguro de que estas líneas son las que causan el error? ideone.com/ZtPPU -

Sí, me sale ese error. Muestra el mismo archivo y el número de línea que mencioné en el código. ¿Podría haber otros problemas? -

"nota: C++0x 'constexpr' solo está disponible con -std=c++0x o -std=gnu++0x" Debe proporcionar el -std=c++0x marca al compilador. -

Esto está bien con GCC 4.7.0. @rajansthapit, ¿Qué compilador está usando y hace esto combinado con un vacío main ¿compilar? Suena más como si estuviera tomando esto de un proyecto más grande donde otra cosa podría ser el problema. -

@rajansthapit Pero que ¿línea? Nos ha proporcionado cuatro líneas de código y no ha indicado cuál desencadena el error. -

1 Respuestas

Mi bola de cristal me dice que estas líneas están dentro de una definición de clase. Esa es una información muy importante que omitió.

Antes de C++ 11, solo los miembros estáticos integrales y enumerados podían inicializarse dentro del cuerpo de la clase. Otros, incluido el punto flotante, deben definirse fuera.

Respondido el 12 de junio de 12 a las 18:06

Es un buen pensamiento, pero ¿no hay otro error para esto? Recuerdo que GCC dijo explícitamente que tiene que ser integral. - Chris

@Ben sí, las líneas están dentro de una definición de clase - rajan sthapit

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.