[語法] c++的new

看板C_and_CPP (C/C++)作者 (cc)時間15年前 (2010/09/11 05:27), 編輯推噓0(007)
留言7則, 4人參與, 最新討論串1/1
我看physically based rendering: from theory to implementation這本課本 他裡面有種寫法 LinearBVHNode *nodes; // LinearBVHNode是一個struct for( uint32_t i=0; i<totalNodes; ++i) new (&nodes[i]) LinearBVHNode; 感覺是等於 nodes[i] = new LinearBVHNode; 是有甚麼特別的功用所以才要這樣寫嗎? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.44.4.30 ※ 編輯: seedman 來自: 114.44.4.30 (09/11 05:28)

09/11 06:06, , 1F
for loop 之前應該還有一段 code 才對。
09/11 06:06, 1F

09/11 06:07, , 2F
用 placement new 的原因很多,其中一種目的是做 pool。
09/11 06:07, 2F

09/11 09:51, , 3F
還可以節省建構時間, 寫裝 沒有預設建構子類別的物件
09/11 09:51, 3F

09/11 09:51, , 4F
的容器, 你就能更了解他的功用
09/11 09:51, 4F

09/11 10:39, , 5F
的確 @@ 前面還有一行
09/11 10:39, 5F

09/11 10:40, , 6F
nodes = AllocAligned<LinearBVHNode>(totalNodes);
09/11 10:40, 6F

09/12 07:27, , 7F
老實說... 這種寫法我也看不懂... @@"
09/12 07:27, 7F
文章代碼(AID): #1CYgA_B7 (C_and_CPP)
文章代碼(AID): #1CYgA_B7 (C_and_CPP)