c++ c++11 user-defined-literals

c++ - ¿Alguien tiene información sobre el uso del operador ""?



c++11 user-defined-literals (2)

Bjarne Stroustrup dio una presentación magistral hoy para la conferencia Going Native 2012. En su presentación, discutió el tema de hacer cumplir las unidades correctas. Su solución elegante (IMHO) para esto involucraba el uso de un operador del que nunca había oído hablar: el operator"" . Usando este operador, pudo escribir código C ++ que se veía así:

ratio = 100m / 1s;

Donde operator""m(...) y operator""s(...) fueron definidos.

¿Alguien sabe de alguna documentación sobre cómo usar realmente este operador (o incluso si algún compilador de C ++ moderno lo admite)? Intenté buscar en línea, pero no tuve suerte. Cualquier ayuda sería muy apreciada.


Actualmente la mejor documentación está probablemente en el propio estándar. Puede obtener la última versión desde el sitio del comité . Según el sitio de gcc, estará en la próxima revisión de gcc (gcc-4.7). Debería poder probarlo al compilar gcc desde el repositorio de SVN.


La sintaxis que estaría buscando es "literales definidos por el usuario", que es una característica de C ++ 11.

Las versiones g ++ 4.7 y mejor soportan esta característica.

Aquí hay algunos documentos que describen el uso de la sobrecarga de ese operador: http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2765.pdf

También vea el excelente enlace que Xeo proporciona en los comentarios a su pregunta.