1
基本上,如果我有一個變量T value
和功能T func(const T &)
將T
轉換爲另一個,我可以做new (&value) T(func(value))
?我不確定重寫同一個地方是否會導致問題。在func(value)
完成之前,舊的value
會被覆蓋嗎?C++就地安置新
更新:我這樣做是爲了嘗試將尾遞歸轉換爲循環(由於非平凡的析構函數,編譯器無法對其進行優化)。比放置新方法更好的方法比歡迎!
爲什麼不簡單'value = func(value);'? – Jarod42
@ Jarod42'T'可能不是可複製(或移動)賦值。 –
所以你試着繞過'T'接口:/ ...還要注意,你忘記調用新的位置的'value'析構函數。 – Jarod42