我試圖瞭解const ref
和in
之間的區別,特別是當涉及到性能時。'const ref'和'in'之間的區別?
我知道
in
相當於const scope
,但到底是什麼the scope storage class means that references in the parameter cannot be escaped (e.g. assigned to a global variable).
是什麼意思?示例代碼是受歡迎的。實現函數時,我如何決定在
const ref
和in
之間?我知道與ref
該對象不會被複制,因爲它是一個參考,但與in
是一樣的真實?
1.好,這就解釋了爲什麼我無法重現這種效果。 2.所以,你是說如果一個函數的參數有'in'存儲類,它會被複制?我應該使用'const ref'嗎? – Arlen
使用當前的編譯器選擇,全部基於DMD,它會被複制。但關於它的巧妙之處在於它仍然在技術上實現定義,因爲用戶無法區分差異。爲了DMD利用這個優化,它需要首先完全實現'範圍'。如果您已將複製標識爲瓶頸並且想要優化,那麼使用'const ref'是個好主意。 –
你怎麼知道DMD這麼多?你是核心開發人員之一嗎? – Arlen