[問題] 關於Loki裡面Small Object的delete函數

看板C_and_CPP (C/C++)作者 (等號卡比)時間12年前 (2013/07/10 19:43), 編輯推噓3(3011)
留言14則, 4人參與, 最新討論串1/1
開發平台(Platform): (Ex: VC++, GCC, Linux, ...) VC++ 2012 額外使用到的函數庫(Library Used): (Ex: OpenGL, ...) Loki 問題(Question): 想請教各位大大: 在Loki庫裡面有個Small Object Allocator,只要是用到該配置器所配置出的空間 都要繼承Small Object,然後查看了一下他的定義: class SmallObject{ ... static void operator delete(void* p, std::size_t size){...} ... }; 為什麼這裡的delete可以有size這個參數? 看了一下C++的網站,是沒有這個參數的: http://ppt.cc/KF9H MSDN的卻有: http://ppt.cc/xIQr 所以想請問各位大大這是怎麼一回事@@所以這是標準用法嗎? 先感謝了m(_ _)m -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 122.116.124.112 ※ 編輯: a27417332 來自: 122.116.124.112 (07/10 19:44) ※ 編輯: a27417332 來自: 122.116.124.112 (07/10 19:45)

07/10 20:05, , 1F
標準有寫 不確定為什麼cplusplus或cppreference都沒有
07/10 20:05, 1F

07/10 20:54, , 2F
標準?可以給個網址嗎?謝謝
07/10 20:54, 2F

07/10 21:03, , 3F
07/10 21:03, 3F

07/10 21:42, , 4F
63頁似乎有個註記@@但不是很能理解他想說什麼
07/10 21:42, 4F

07/10 21:51, , 5F
好像打錯頁了XD 64頁,似乎在class的時候是可以有size
07/10 21:51, 5F

07/10 22:21, , 6F
google placement new effective c++
07/10 22:21, 6F

07/10 23:05, , 7F
可是我看到包含size在標準裡面是寫non placement?@@
07/10 23:05, 7F

07/10 23:06, , 8F
P.64 第二小點的地方,不知道是不是我英文太爛(汗)
07/10 23:06, 8F
http://ppt.cc/yiVX這裡的P.72,好像就是指這個......感覺好晦澀,是只能限定用於 class裡面嗎,還是廣域也可用?還希望有大大補充。 ※ 編輯: a27417332 來自: 122.116.124.112 (07/10 23:24)

07/15 11:20, , 9F
global一樣可以用。標準是在告訴你什麼情況會被視為default
07/15 11:20, 9F

07/15 11:22, , 10F
usual/non-placement
07/15 11:22, 10F

07/15 18:13, , 11F
喔喔,之後發現在class裡面才可以被當成non-placement
07/15 18:13, 11F

07/15 18:14, , 12F
另外delete[]裡面傳進來的size會是單一物件的size...
07/15 18:14, 12F

07/15 18:15, , 13F
可是new[]裡面會傳進來一整列的size,另外如果物件有"有
07/15 18:15, 13F

07/15 18:15, , 14F
意義的解構函數",在new[]的時候會多出一些空間來放數量
07/15 18:15, 14F
文章代碼(AID): #1HtKZQun (C_and_CPP)
文章代碼(AID): #1HtKZQun (C_and_CPP)