精華區beta Programming 關於我們 聯絡資訊
※ 引述《PwiPwiWorm (Valley of shadow)》之銘言: : : 如果 C++ 像 java 一樣有個 root class (i.e java.lang.Object), RTTI 會簡單很多. : : 沒有這種 construct, RTTI 只能靠 macro 變出來, 會髒到不行. (MFC 就這樣搞的) : : 不然就得改 C++ 語法, 這麼一來很多 C++ compiler 就不支援 wx 了. : : (用 "root class" 怪怪的, 有什麼 term 可以用嗎? 很久沒碰 Programming Language 了) : : generic type (在 C++ 來說就是 template 啦) 有其方便性, : : 但一般來說, 有了 RTTI 和 root class 後, template 就可以拿掉了, : : 就算有, 也只是 syntax sugar, 這就是 java 沒有 template 但卻沒什麼人抗議的原因. : : (well, 不過 "建議" 要有 generic type 的人 應該是不少, : : Java 1.5 已經把 generic type 加到 java 的語法裡了. : : 雖然沒有沒關係, 但有了大家都很高興, 這就叫 syntax "sugar" :P) : : 在沒有 RTTI 和 root class 時, template 就像是 syntax level 的 macro, : : 如果你反對大量的 macro, 那大概也不怎麼喜歡 C++ 的 template 吧. : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ : 或許原波忽略了template和metaprogramming所帶大的影響, : 連design pattern都為之而變,另外還有type trait、type list、 : 甚至整個boost的MPL的出生...,以前許多做不到的事情,現在都可以輕易完成 : 如果把template和macro等值視之,很多C++的大老都會嘆氣吧 : (我想這大概是yoco大大看了以後"...."的原因) 請問原po讀過 Modern C++ Design嗎 (沒有特別意思) 我覺得第1章應該有所幫助 template的引入,應該是設計思維上的衝擊 大過於 成為進階本的macro -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 220.135.40.166
march20:確實沒讀過 ^^; 71.137.21.30 07/29 12:28
march20:這樣說確實很有道理, 受教了 :) 71.137.21.30 07/29 12:28