Wird die gesamte struct
kopiert und auf dem Stapel übergeben? Wenn ja, werden Kopierkonstruktoren aufgerufen? Wird der Zeiger übergeben? Ist das sicher?
Ja, wenn Sie einen lvalue übergeben, wird die Konvertierung von lvalue in rvalue ausgeführt, was bedeutet, dass der Kopierkonstruktor aufgerufen wird, das Objekt in eine neue Kopie zu kopieren und dieses als Argument zu übergeben.
void f(...)
verwendet eine Bit-Kopie. Für Ihr somestruct
wird kein Standardkonstruktor oder Kopierkonstruktor generiert, da dieser nur über C ++ - Einbautypen verfügt.
Ja, das ist vollkommen sicher.
Ich verweise Sie auf 'Inside C ++ Object Model' chapter 2 The Semantics of Constructors
Tags und Links c++ variadic-functions