Hier verketten ist der Code:Ärger mit dem Prä-Prozessor - wenn „name“ und „=“ als Token
#define STR_CONCAT_IMPL(s1, s2) s1##s2
#define STR_CONCAT(s1, s2) STR_CONCAT_IMPL(s1, s2)
#define TOSTR_IMPL(x) #x
#define TOSTR(x) TOSTR_IMPL(x)
#define STR_CONCAT_TOSTR(s1, s2) TOSTR(STR_CONCAT(s1, s2))
int main() {
const char* a = STR_CONCAT_TOSTR(name, p); // works
const char* b = STR_CONCAT_TOSTR(name, =); // doesn't work
return 0;
}
ich eine Zeichenfolge wie "name="
von "name"
bei der Kompilierung benötigen (Runtime-Verkettung keiner Option), so ich habe versucht, mit meinen alten Makros, aber ich bekomme diese Fehlermeldung:
error: pasting "name" and "=" does not give a valid preprocessing token
aber wenn nicht mit =
aber ein normales Zeichen - es funktioniert.
Wie kann ich das zum Funktionieren bringen?
C++ 98 GCC/MSVC-Lösung benötigt.
Ich erkenne dein Avatar - Epos gleichzeitige Sachen auf Github! – onqtam
Haha, danke :-) – Cameron