2012-11-04 26 views

回答

2

是的,如果你傳遞一個左,左值到右值的轉換也多,這意味着調用拷貝構造函數對象複製到新的副本並將其作爲參數傳遞。

+0

那麼......但是如果你仍然有這樣的約束:類型必須是可複製的(並且你這樣做,否則'g ++'會輸出一個錯誤),那麼你的答案和billz是等價的還是不相等的? –

+0

@LorenzoPistone no。複製構造函數可能被刪除或私有。它不一定是不平凡的,但稱它是不合格的。 –

1

void f(...)正在使用位控制副本。您的somestruct將不會生成默認構造函數或複製構造函數,因爲它只有C++內置類型。

Is this safe? 

是的,這是非常安全的。

我將把你「裏面的C++對象模型」 chapter 2 The Semantics of Constructors

+0

你有參考嗎? –

+0

我注意到現在結構必須是可複製的。 –

+0

@LorenzoPistone:結構必須是POD類型。 –

相關問題