Есть ли способ заставить предварительный процессор С++ расширить значение # define'ed в строковый литерал?
например:
#define NEW_LINE '\n'
Printf("OutputNEW_LINE"); //or whatever
Это выглядит так, как это должно быть возможно, как это было до компиляции?
Или есть лучшая модель дизайна для достижения такого поведения (не прибегая к исправлениям времени выполнения, например sprintf)?
EDIT Я понимаю, что #define может быть злым, но ради аргументов...
ДОПОЛНИТЕЛЬНО Кто-нибудь критикует этот подход?