String array
-
Hi Leute
Ich versuch eine string array zu machen aber bei mir funktioniert das nicht wie macht man das am besten ich habs so versucht:
std::string liste[] = {"int", "string", "wstring", "bool", "INT:", "STRING:", "WSTRING:", "BOOL:"};
-
Bei
std::stringgeht das so nicht. Da musst du die Werte einzeln Eintragen.
-
gibt es irgend eine möglichkeit eine liste zu erstellen ich gebs bald auf

-
std::list<std::string> strlist; strlist.push_back("String1"); strlist.push_back("String2"); // etc.
-
geht nicht da kommt:
/media/nico_/sicherung/ubuntu/Projekt/c lite/lexer/variable.h|9|error: expected constructor, destructor, or type conversion before ‘<’ token| /media/nico_/sicherung/ubuntu/Projekt/c lite/lexer/variable.h|10|error: expected constructor, destructor, or type conversion before ‘.’ token| /media/nico_/sicherung/ubuntu/Projekt/c lite/lexer/variable.h|11|error: expected constructor, destructor, or type conversion before ‘.’ token| /media/nico_/sicherung/ubuntu/Projekt/c lite/lexer/variable.h|12|error: expected constructor, destructor, or type conversion before ‘.’ token| /media/nico_/sicherung/ubuntu/Projekt/c lite/lexer/variable.h|13|error: expected constructor, destructor, or type conversion before ‘.’ token| /media/nico_/sicherung/ubuntu/Projekt/c lite/lexer/variable.h|14|error: expected constructor, destructor, or type conversion before ‘.’ token| /media/nico_/sicherung/ubuntu/Projekt/c lite/lexer/variable.h|15|error: expected constructor, destructor, or type conversion before ‘.’ token| /media/nico_/sicherung/ubuntu/Projekt/c lite/lexer/variable.h|16|error: expected constructor, destructor, or type conversion before ‘.’ token| /media/nico_/sicherung/ubuntu/Projekt/c lite/lexer/variable.h|17|error: expected constructor, destructor, or type conversion before ‘.’ token| ||=== Build finished: 9 errors, 0 warnings ===|
-
gamebuntu schrieb:
Hi Leute
Ich versuch eine string array zu machen aber bei mir funktioniert das nicht wie macht man das am besten ich habs so versucht:
std::string liste[] = {"int", "string", "wstring", "bool", "INT:", "STRING:", "WSTRING:", "BOOL:"};Komisch. Bei mir geht das.
Da aber std::string kein "Literal-Typ" (C++0x-sprech) wird so etwas immer dynamisch initialisiert, auch, wenn Du es außerhalb von Funktionen definierst. Als Zeichenketten-Lookup-Tabelle -- also, wenn die Strings nicht verändert werden müsse -- finde ich so etwas noch sehr praktisch:
char const* const list[] = {"La", "Le", "Lu"};
-
bEI MIR KOMMT DANN DAS:
obj/Debug/lexer/variable.o||In function `__tcf_0':| /media/nico_/sicherung/ubuntu/Projekt/c lite/lexer/variable.h|9|multiple definition of `liste'| obj/Debug/lexer/lexer.o:/media/nico_/sicherung/ubuntu/Projekt/c lite/lexer/variable.h|9|first defined here| ||=== Build finished: 2 errors, 0 warnings ===|
-
gamebuntu schrieb:
multiple definition of `liste'
Ja dann halte Dich doch einfach an die ODR. Beachte da Punkt 2. Du hast scheinbar die Liste in einem Header definiert und diesen in mehreren "translation units" eingebunden.
-
das komme ist das ich mich daran halte nirgendst wo anderes im Quelltext ist solch eine definition noch;
-
ich habs herrausgefunden ich hab das in der variable.h rein gemacht aber ich darf nur in variable.cpp das so definieren.
@krümelkacker:
Ich benutze C++0x schon obs einen unterschied macht sehe ich momentan nicht.
-
gamebuntu schrieb:
das komme ist das ich mich daran halte nirgendst wo anderes im Quelltext ist solch eine definition noch;

*massive syntax error*
Ich hoffe, dein C++-Code ist besser
Gruß,
Simon2.