Werden Objekte per return auf den Stack geworfen ?
-
Hallo,
ich bin im Moment nicht mehr ganz auf dem laufenden was C++ betrifft, ich habe vor ein paar Jahren mal im Bjarne gelesen, dass man solche Konstrukte eher meiden sollte weil sie auf den Stack kopiert werden:
Matrix4x4 Matrix4x4::multiply(Matrix4x4& m) { Matrix4x4 result; result.x1 = ... //Hier kommt die Multiplikation return result; //Die Frage: Wird result hier auf den Stack geworfen ? }Mit sowas kann man sich ja ganz schnell die Perfomance verhageln...
Ich habe bisher immer eine result-Referenz mitübergeben um das return
zu vermeiden - ist natürlich nicht so hübsch wie die Lösung oben.Allerdings habe ich mir jetzt sagen lassen, dass moderne Compiler mit solchen Konstrukten absolut kein Problem haben. Stimmt das ?
Danke,
Frederick
-
Frederick schrieb:
Allerdings habe ich mir jetzt sagen lassen, dass moderne Compiler mit solchen Konstrukten absolut kein Problem haben. Stimmt das ?
ja
-
sehr gut
