¿Hay alguna manera de hacer que el preprocesador C++ expanda un # valor definido en un literal de cadena?
por ejemplo:¿Se puede expandir # define's en literales de cadena?
#define NEW_LINE '\n'
Printf("OutputNEW_LINE"); //or whatever
Esto me parece que debería ser posible ya que es antes de la compilación?
¿O hay un mejor patrón de diseño para lograr este tipo de comportamiento (sin recurrir a correcciones de tiempo de ejecución como sprintf)?
EDITAR entiendo que #define de puede ser malo, pero para bien de los argumentos ...
ADICIONAL ¿Alguien tiene alguna crítica de este enfoque?
@GMan ¿Alguna alternativa 'menos fea'? –
Bueno, puedes usar \ n directamente en Strings. El estándar C exige que este carácter único se expanda a lo que la plataforma utilice como delimitador de línea/terminador, al menos cuando se escribe en archivos de texto y en la consola. – Joey