我已經重載了X
類型的新運營商使用一些內存池。我的new
運算符沒有用戶定義的參數,因此唯一的參數是size_t
類型的對象的大小。在該計劃的另一部分,我需要放置新的同類型的,像這樣:C++:放置新的衝突與自己的新的過載
new (ptr) X();
(其中PTR是一個指向預分配的內存位置)
看來,我的新的過載用於陰影佈局類型的新運算符。至少,編譯器會抱怨:
error: no matching function for call to ‘X::operator new(long unsigned int, X*&)’
note: candidate is:
note: static void* X::operator new(size_t)
note: candidate expects 1 argument, 2 provided
候選者是我的新操作符的重載。我的問題是:
- 爲什麼編譯器不能識別我想使用放置新?
- 無論如何,我該如何使用它?
- WTF是錯誤信息中顯示的類型
X*&
?
X *&是對X *的引用。通過參數返回X *。 http://codepad.org/7vu3r04b –