generische Möglichkeit zum drucken von Variablen-Namen in c++

gegeben eine Klasse

struct {
  int a1;
  bool a2;
  ...
  char* a500;
  ...
  char a10000;      
}

Will ich drucken oder stream

"a1 value is SOME_VALUE"  
"a2 value is SOME_VALUE"
"a500 value is SOME_VALUE"
...
"a10000 value is SOME_VALUE"

den Typ der member-Variablen sind nicht das gleiche (vor allem, int, bool, char*, etc, also, keine Notwendigkeit, um eine überlastung << operator), und die member-variable name könnte genannt werden, mit nichts, also, keine Regel zu Folgen. Anstatt explizit einen von einer (sehr großen mühsame und fehleranfällige Arbeit), gibt es eine Allgemeine Möglichkeit?

Vielen Dank für alle Kommentare!

  • Einige frameworks spiegelung hinzuzufügen, aber dies ist nicht eine native Sprache-Funktion
  • Es gibt keine Allgemeine Möglichkeit, das zu tun, was Sie wollen in C++. Sie sollten sich Fragen, ob Sie das richtige Werkzeug für den job. Betrachten Sie entweder eine andere Sprache oder eine andere Datenstruktur in C++, vielleicht auch ein Vektor oder eine Liste.
  • Außerdem, kann man wirklich nicht tun es richtig. Nehmen struct { std::string a; } - willst du das wirklich ausdrucken a._BUF[0] = 'H' a._BUF[1] = 'e' a._BUF[2] = 'l' , a._BUF[0] = 'l' etcetera? Oder möchten Sie lieber wollen a = "Hello, world\n" ? C++ hat eine klare Vorstellung, wie Sie drucken struct Foo, und das ist mit operator<<(std::ostream&, Foo);
InformationsquelleAutor pepero | 2011-07-08
Schreibe einen Kommentar