Я пытаюсь написать макрос для расширения содержимого структуры:
struct Str
{
int a;
float f;
char *c;
};
Str s = {123, 456.789f, "AString"};
#define STRINGIFY_STR(x) ... // Macro to stringify x which is an instance of Str
printf("%s", STRINGIFY_STR(s));
желаемый результат: [a: 123, f: 456,789, c: AString]
Можно ли написать макрос, который это делает? Если да, то как?
toString
к вашему объекту или бесплатную функцию, которая принимает константную ссылку для достижения этой цели? Вы даже можете просто использоватьstd::ostringstream
, если производительность не имеет значения. - person AJG85   schedule 16.06.2012operator<<
для класса Str. - person Martin York   schedule 16.06.2012