Makro Argument in String verwandeln
-
Hallo!
Ich hatte die Frage so ähnlich schon mal ins Linux forum gepostet, nur bekam ich da keine Antwort. Vielleicht kennt sich hier jemand mit Makros aus.Ich habe folgende Struktur:
struct Foo { string Bar; }; Foo Temp[2] = {{"Test"}, {"Test2"}};
Und dass Makro soll jetzt bei MAKRO(Temp[0].Bar) "Test" zurückliefern, ich kenn mich mit Makros leider gar nicht aus, ich denke mal es ist recht einfach...
Danke im voraus
KaPtainCugel
-
das geht nicht, ist sinlos und ich hab überhaupt keine Ahnung davon
-
#include <iostream> #define SYMBOL2STR(x) #x int main() { std::cout << "hallo " << SYMBOL2STR(DU) << std::endl; }
-
Ich sehe den Zusammenhang zwischen #X und dem Originalposting irgendwie nicht...
Warum muss es denn ein Makro sein?
-
Wenn das dein Code ist:
struct Foo { string Bar; }; Foo Temp[2] = {{"Test"}, {"Test2"}};
und das Makro so aussehen soll MAKRO(Temp[0].Bar) und dann "Test", also den Wert zurückliefern soll, den du übergeben hast, dann Sieht das für mich so aus:
#define MAKRO(foo) foo struct Foo { string Bar; }; Foo Temp[2] = {{"Test"}, {"Test2"}}; int main () { cout << MAKRO(Temp[0].Bar) << '\n'; }
Das kann es aber irgendwie nicht sein. Erklär bitte nochmal, was du genau willst.
-
Das Problem war ursprünglich mal ein anderes, da hatte ich noch Zeiger auf Methoden, statt dem std::string, war natürlich dass jetzt soweit zu verändern, dass es keinen Sinn mehr ergibt. Aber ich denke ich habe jetzt eine Lösung, danke trotzdem!