Endlose Parameterliste
-
Bei printf und CString.Format gibt es die Möglichkeit mit /d /i variablen dem Text hinzuzufügen , die man in einer endlosen Parameterliste übergibt z.B.:
CString test; test.Format("Variable 1:/i Variable 2:/i ...",var1,var2,var3,var4,...);Die Anzahl der benutzen Variablen ist dabei nicht begrenzt.
Gibt es eine Möglichkeit , dies in einer eigenen Funktion auch einzufügen?
-
Hallo,
klar ist das möglich, die MS Jungs hatten schließlich auch nicht mehr zur Hand als du
. Siehe hier.MfG
GPC
-
ja, mit der ellipse
ist allerdings besonders in C++ keine gute idee, denn erstens geht jede typsicherheit verloren, und zweitens dürfen nur PODs als argumente benutzt werden. eine bessere methode (wenn auch etwas aufwendiger zu schreiben - am besten mit hilfe von boost.mpl und boost.preprocessor) ist die verwendung von template-überladungen mit unterschiedlicher parameterzahl. (in C++0x gibts dann hoffentlich auch templates mit variabler parameterzahl)
eine andere möglichkeit ist verkettung von funktionsaufrufen: boost::format machts vor
-
...ist aber in C++ nicht anzuraten, weil (nicht nur) typunsicher. Nicht umsonst wurden stringstreams und boost::format erfunden.

-
Danke , aber ist schon ok

Der Parameter wird zwar immer in 'int' umgewandelt , aber die Parameter , die ich benutze sind sowieso nur vom Typ 'char', insofern belasse ich es erst mal bei va_start , va_list und va_end