Какой лучший способ вывести общедоступное содержимое объекта в читабельный файл? Я ищу способ сделать это, чтобы не требовалось, чтобы я знал всех членов класса, а использовал компилятор, чтобы сообщить мне, какие члены существуют и как их зовут. Должны быть макросы или что-то в этом роде, верно?
Придуманный пример:
class Container
{
public:
Container::Container() {/*initialize members*/};
int stuff;
int otherStuff;
};
Container myCollection;
Я хотел бы иметь возможность что-то сделать, чтобы увидеть вывод в соответствии с "myCollection: stuff = value, otherStuff = value".
Но затем, если в Контейнер добавлен другой член,
class Container
{
public:
Container::Container() {/*initialize members*/};
int stuff;
string evenMoreStuff;
int otherStuff;
};
Container myCollection;
На этот раз выводом этого снимка будет «myCollection: stuff = value, evenMoreStuff = value, otherStuff = value»
Есть ли макрос, который помог бы мне достичь этого? Это вообще возможно? (Также я не могу изменить класс Container.)
Еще одно замечание: меня больше всего интересует потенциальный макрос в VS, но приветствуются и другие решения.