Ellipse weiterleiten
-
Hallo
Ist es möglich eine Ellipse weiterzuleiten:
Pseudocode als Beispiel:void mytest(int param1, ...) { test(...); }
-
Hi
Was verstehst unter "weiterzuleiten" ??
Gruß
-
Er meint "forwarding", also eine andere varargs Funktion mit den selben Parametern aufrufen wie die selbst geschriebene varargs Funktion.
Das geht soweit ich weiss nicht.
In der Standard-Library sollte es aber für alle varargs Funktionen auch "v" Varianten geben (printf -> vprintf etc.), die als Argument eine "va_list" nehmen.
An diese kann man dann "weiterleiten".
Ich glaube dass diese "v" Varianten im Standard definiert sind, und ich weiss dass sie zumindest sogut wie überall verfügbar sind (falls sie nicht im Standard stehen sollten).Daher finde ich ist es auch "guter Stil" wenn man für jede eigene "..." Funktion selbst eine "v" Variante macht. Die Implementierung ist ja trivial: die "..." Funktion ruft die "v" Funktion auf ("leitet weiter"), und die "v" Funktion macht die eigentliche Arbeit.