Ausgabe mit beliebig vielen variablen in Funktion kapseln
-
Hallo,
Ich wurde gerne einer Funktion einen (Format) String und zusätzlich beliebig viele variablen mit geben.
KapselFkt("String %1 ist doch nicht %2 ... ", str1, str2, ...);
In der Funktion soll dann abhängig von einem Globalen Flag noch paar Sachen passieren (nicht mit den vars), und anschließend wenn ein weiteres globales flag gesetzt ist werden die Variablen im Format string ausgegeben (debug Ausgabe).
KapselFkt(...) { // bla bla if(GLOAB_EN) { print(...); } }
Meine frage wie muss ich den Funktionskopf und darin denn Ausgabe aufruf gestalten, das das mit dem (Format) string und den variablen klappt.
-
-
kkggggggggg schrieb:
http://msdn.microsoft.com/en-us/library/fxhdxye9(VS.80).aspx
Leider für C++ größtenteils unbrauchbar.
Was du wirklich willst sind variadic templates:
template<typename ... Args> void KapselFkt( char const* format, Args&&... args ) { // ... }
-
Ich nehme mal an, die Ausgabe soll mit printf&co. erfolgen.
void foo(const char* s, ...) { va_list args; va_start(args, s); vprintf(s, arga); va_end(args); }