Знает ли кто-нибудь о какой-либо препроцессорной манере C99, которая позволяет создавать строку, состоящую из другой строки, повторяемой N раз?
например.
STRREP( "%s ", 3 )
становится
"%s %s %s "
после предварительной обработки.
Единственное, что я мог думать о себе, было что-то вроде этого
#define STRREP( str, N ) STRREP_##N( str )
#define STRREP_0(str) ""
#define STRREP_1(str) str
#define STRREP_2(str) str str
#define STRREP_3(str) str str str
...
который работает хорошо, но является уродливым, поскольку я должен определить макрос для каждой длины повторения вручную. Я хочу использовать его вместе с переменными макросами, а макрос возвращает количество аргументов макроса, показанных здесь.