2010-09-15 25 views
5

Miré en mpl :: string de boost, pero no parece haber una manera fácil de convertir literales de cadena al formato de mpl :: string basado en enteros simples. Lo que trato de hacer es generar en tiempo de compilación una realización XML de algunas estructuras de datos simples utilizando series de tiempo de compilación. Me esfuerzo por que las macros generen las estructuras mismas e inserten un campo constante "meta" dentro de ellas, que contenga dicha cadena XML.C++ Tiempo de compilación manipulación

Respuesta

3

La respuesta corta es no, no hay una manera fácil. Al menos no usar C++ solo, y en tiempo de compilación. Puede usar scripts o algún otro generador de código para producir mpl::string s con los literales correctos. C++ 0x traerá literales definidos por el usuario [1], que permiten una fácil manipulación de literales, carácter por carácter, por ejemplo, utilizando plantillas variadic.

  1. http://en.wikipedia.org/wiki/C%2B%2B0x#User-defined_literals
+1

¿Hay alguna garantía de que los literales definidos por el usuario se procesen en tiempo de compilación? Siempre asumí que estamos a merced del optimizador para eso. – peterchen

+0

La cuestión es que, al menos, se transfieren al programa de forma fácil de escritura y mantenimiento, es decir, no es necesario escribir ''a ',' b ',' c ', ...'. –

Cuestiones relacionadas