2012-04-07 6 views
5

Recientemente vi GoingNative2012 sobre, por supuesto, C++ 11.¿Qué es el operador "" que vi en GoingNative2012

En la sección de Bjarne Stroustrup, descubrí que había una función de operador interesante, que era la siguiente.

constexpr Value<Second> operator""s(long double d) 
{ 
    return Value<Second>(d); 
} 

Bueno, al lado constexpr que se parece a una nueva palabra clave en C++ 11,

nunca he conocido "" es capaz de sobrecarga?

¿Es esta una de las nuevas características de C++ aunque no pude probarla con VS 2010?

Gracias de antemano.

+5

¿No estabas escuchando lo que estaba diciendo cuando usted lo miró? – Troubadour

+1

Este ejemplo de código es incorrecto de dos maneras: 1) se requiere espacio en blanco entre el "" y el sufijo, y 2) los sufijos definidos por el usuario deben comenzar con un guión bajo; los sufijos que no comienzan con un guión bajo están reservados para una futura estandarización. –

Respuesta

5

Es una nueva característica del lenguaje C++11 núcleo: user defined litterals

+0

Muchas gracias. –

+0

Tenga cuidado de que como ese artículo está en Wikipedia, simplemente _no_ podría ser formalmente correcto. (Por ejemplo, donde dice "Los caracteres" 12.5 "son un literal que el compilador resuelve como un tipo doble con el valor de 12.5." ...) –

+0

De acuerdo en que algunos detalles en Wikipedia pueden ser un poco incorrectos, pero es un resumen bueno y fácil de entender de lo que trae el estándar C++ 11 (casi mil páginas difíciles de leer) .... –

Cuestiones relacionadas