考慮同樣的功能返回值優化
Object foo()
{
Object ret;
ret.a.set(...);
ret.b.set(...);
return ret;
}
Object foo()
{
A a;
a.set(...);
B b;
b.set(...);
return Object(a, b);
}
以下兩種實現方式假設A ::設置和B ::組必須建成後調用。另外,假設Object,A和B都有移動構造函數,不會複製大量的數據。最後,假設編譯器執行RVO和NRVO。
其中哪些在對象構造方面更高效?
取決於對象,編譯器優化等只是簡介它 – 2012-08-12 18:41:25
[瞭解返回值的優化和返回臨時工 - C++](http://stackoverflow.com/questions/1394229) – Blastfurnace 2012-08-12 19:56:10
爲什麼構造函數不採取它需要完全構建對象的參數。只要這不是瓶頸(你應該能夠證明這一點)。然後代碼應該以最容易編寫和維護的方式編寫。 – 2012-08-12 20:04:55