Vor kurzem habe ich ein lästiges Problem, dass ich Funktionen wie folgt definieren möchte:
%Vor%Aber es scheint, dass der Referenzwert nicht der letzte Parameter sein kann, wenn die Parameterliste mit variabler Länge verwendet wird.
Ist das eine Möglichkeit, dass ich std :: string als Formatzeichenfolge benutzen kann?
Vielleicht könnten Faktoren oder etwas anderes, das std :: string erkennt und es als c_str () konvertiert, funktionieren, aber ich weiß nicht, wie ich mit der folgenden Parameterliste mit variabler Länge umgehen soll.
Bearbeiten: Ich benutze nicht variadic Vorlage, weil ich Vsprintf innen verwende. Vermeide die Verwendung von Vsprintf und die Verwendung von std :: stringstream ist eine Option?
Das Verhalten ist undefiniert : Siehe C ++ - Standard 18.10 / 3 (für C ++ 11 und C ++ 14) oder cppreference.com: Variadische Argumente .
Im Wesentlichen können Sie nur Typen verwenden, die in C mit va_start
verfügbar sind, obwohl für den Typ std::nullptr_t
eine Ausnahme gemacht wird.
Tags und Links c++