¿Hay alguna manera de reemplazar el idioma Xmacro utilizando las características de C++ 11, y preferiblemente no usar el preprocesador? Pensaba que las plantillas de tuplas se podrían usar, pero todavía estoy tratando de asimilar cómo funcionan.¿Hay una plantilla/constexpr/C++ 11 forma de reemplazar X-macros?
Respuesta
XMacros son una herramienta general para hacer una variedad amplia de . Muchos de los cuales (como crear una lista de enumeradores, cadenas, etc.) van más allá de las capacidades de las plantillas de cualquier tipo.
Probablemente hay algunos casos en los que puede encontrar una manera de reemplazar con plantillas. Pero ciertamente no todos.
esperaba que ese fuera el caso. Los "algunos casos" que estoy usando en este momento, y me gustaría reemplazar con plantillas, es la enumeración de enumeraciones. – Naddiseo
@Naddiseo: para ese caso, absolutamente no. Las plantillas no tienen la capacidad de transformar un token en la representación de cadena de ese token, que es lo que eso requeriría. –
C++ 11 realmente podría usar algunas capacidades más potentes de procesamiento y reflexión de cadenas en tiempo de compilación. Algo como 'std :: enum_name
- 1. ¿Hay una alternativa de Boost.Bimap en C++ 11?
- 2. Reemplazar BOOST_FOREACH con la alternativa "pura" C++ 11?
- 3. ¿Hay contenedores concurrentes en C++ 11?
- 4. ¿Hay alguna forma en C++ 11 para obtener el tipo de puntero de miembro dentro de una plantilla?
- 5. ¿Hay alguna forma de minimizar mediante programación una ventana?
- 6. Forma correcta de reemplazar Igual() y GetHashCode()
- 7. potencias de cálculo (por ejemplo, 2^11) de forma rápida
- 8. ¿Hay alguna forma de utilizar anotaciones en Java para reemplazar los usuarios?
- 9. ¿Hay una forma elegante de reemplazar si se usa algo así como el interruptor cuando se trata de intervalos?
- 10. reemplazar de forma no recursiva las funciones de Javascript integradas
- 11. ¿Hay una forma abreviada de denulificar una cadena en C#?
- 12. Forma correcta de reemplazar valores de estilo en WPF
- 13. ¿Hay una lista de interfaces de biblioteca estándar de C++ 11 que requieren excepciones habilitadas?
- 14. ¿Hay un match_partial en C++ 11 Regular Expressions?
- 15. Forma simple de reemplazar partes de NSMutableString/NSString
- 16. ¿Hay alguna forma de obtener una dirección de referencia?
- 17. ¿Hay una forma más rápida de recorrer miles de elementos?
- 18. ¿Hay alguna forma de encontrar la dirección de una referencia?
- 19. ¿Hay una forma de MVC de hacer ASCX?
- 20. ¿Hay una forma Groovier para agregar guiones a una cadena?
- 21. animación antes de API 11
- 22. ¿Cuál es una forma eficiente de reemplazar muchos caracteres en una cadena?
- 23. ¿La mejor forma de Java para encontrar y reemplazar cadenas?
- 24. ¿La forma más fácil de encontrar y reemplazar recursivamente?
- 25. ¿Hay una forma segura de ejecutar eval en Ruby?
- 26. ¿Hay alguna forma de usar `exec` en una cláusula where?
- 27. ¿Hay alguna otra forma de truncar una cadena?
- 28. ¿Hay alguna forma de anular una variable booleana devuelta?
- 29. ¿Hay alguna forma de regexp-quote una cadena en Node.js?
- 30. ¿Hay una forma correcta de pasar argumentos en slf4j?
+1 por alertarme sobre el hecho de que esta técnica tiene un nombre. Lo he visto antes en el código y lo he usado. Pero no sabía que se llamaba algo. –