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
5
A
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.
0
Aquí es un artículo sobre el tema: http://akrzemi1.wordpress.com/2011/05/11/parsing-strings-at-compile-time-part-i/. El autor implementa una calculadora aritmética RPN simple que funciona durante el tiempo de compilación usando literales de cadena de usuario y constexpr. No intentaré proporcionar ningún otro resumen del artículo aquí.
Cuestiones relacionadas
- 1. Manipulación 'cadena' en tiempo de compilación con plantillas variables
- 2. Manipulación de tiempo en ruby
- 3. Reflejo de tiempo de compilación en C#
- 4. tiempo de compilación en C trigonometría
- 5. Tiempo de compilación de perfiles
- 6. C# string manipulación
- 7. offsetof en tiempo de compilación
- 8. C# string problema de manipulación
- 9. Manipulación y almacenamiento del tiempo transcurrido
- 10. operador sizeof en tiempo de compilación o tiempo de ejecución
- 11. Generando una advertencia de tiempo de compilación personalizada C#
- 12. C++ macros de tiempo de compilación para detectar ventanas os
- 13. C++ Tiempo de compilación offsetof dentro de una plantilla
- 14. ID de tipo C++ en tiempo de compilación
- 15. Determinación del tipo de tiempo de compilación en C++
- 16. Registro de tipo C++ en tiempo de compilación truco
- 17. Qt Error de tiempo de compilación. .
- 18. manipulación
- 19. manipulación en C puro Excepción
- 20. Detección constante en tiempo de compilación en C++
- 21. Cómo inyectar código C# en tiempo de compilación?
- 22. ¿Configurando valores en tiempo de compilación en Visual Studio (C#)?
- 23. Cómo minimizar el tiempo de compilación en C++
- 24. Obtener tiempo de compilación JAR
- 25. C# Compilación de tiempo de compilación para las constantes de cadena
- 26. ¿Cómo llenar NSArray en tiempo de compilación?
- 27. Estructura de árbol de tiempo de compilación
- 28. Qt - Error 2 en tiempo de compilación
- 29. ¿GCC tiene un tiempo de compilación incorporado?
- 30. tiempo de compilación: definición múltiple de 'principal'
¿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
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 ', ...'. –