C ++ не является интроспективным. То есть он ничего не знает о содержимом своих структур. Для этого вы должны использовать какую-то ручную аннотацию или систему отражения.
Конечно, если вы в порядке с жесткой кодировкой информации о структурах, вы можете вывести эту информацию любым методом ввода-вывода.
Например:
struct A
{
int member1;
char member2;
};
void PrintA (const A& a)
{
std::printf ("member1: %d\n", a.member1);
std::printf ("member2: %c\n", b.member2);
}
Как видите, это утомительно, потому что требует глубокого знания структуры и не будет обновляться автоматически при изменении структуры. Но накладные расходы системы отражения, чтобы сделать это «должным образом», могут быть недостатком, особенно если вы учитесь.