eclipse — автоматически генерировать код для печати каждого поля структуры в Stack Overflow

У меня есть структура, как показано ниже, Точно так же может быть несколько структур с несколькими полями.

struct A
{
int a;
int b;
char * c;
float d
};

Теперь, если я хочу напечатать каждое поле вышеупомянутой структуры, мне нужно набрать вручную,

cout<<A.a<<endl;
cout<<A.b<<endl;
cout<<A.c<<endl;
cout<<A.d<<endl;

Как вы можете видеть вышеописанное, это ручная и повторяющаяся задача. Есть ли способ автоматически генерировать вышеуказанные вещи?
Если кто-то может предоставить шаблон кода для затмения, то это было бы полезно.

1

Решение

Я думаю, что вы можете просто создать метод в struct A это печатает всех участников. Называйте это там, где вам нужно распечатать все данные, используя A.PrintInternalData(),

#include<iostream>

struct A
{
int a;
int b;
char * c;
float d

void PrintInternalData()
{
std::cout<<A.a<<std::endl;
std::cout<<A.b<<std::endl;
std::cout<<A.c<<std::endl;
std::cout<<A.d<<std::endl;
}
};
0

Другие решения

C ++ изначально не поддерживает ни рефлексию, ни самоанализ. Вы не можете проверить тип и запросить его, какие члены или функции он содержит. Вы в значительной степени застряли, делая это «вручную» или используя библиотеку, которая добавляет отражение (например, Boost Reflect или Qt, которая также предоставляет ограниченную версию для производных классов QObject).

0