作者reader (讀者)
看板CSSE
標題Re: [討論] 編譯問題
時間Mon Feb 21 21:38:29 2005
※ 引述《reader (讀者)》之銘言:
: a.g(b); // 執行 A::f() 還是 f() ??
: --
: 推 Eventis:執行的應該是f()吧@@ 61.62.49.43 02/21
: → Eventis:不是已經將function pointor傳進去了嗎@@? 61.62.49.43 02/21
執行是 A::f() 才合乎 first-order function, 這正是它奧妙的地方。
如果只是 function pointer 就簡單太多了。
傳統的編譯程式是做不到的。你可以想像它是「執行時期的巨集函數」。
有這個東西,就不需要醜陋的 iterator 了。用 iterator 不見得一定
比較快,但是程式碼變醜太多了。
試想如果巨集語言、描述語言和程式語言,都是完全一樣的語法,完全
互通,那麼,顯然程式設計將會變得很不一樣。
--
現在 C++ 不過是把巨集語言合併到程式語言當中 (template),一堆人
就在那邊大呼小叫說是什麼革命性發展的,弄個什麼泛型化程式設計就
覺得世界被改變了,實在是眼光太過短淺。那叫「本來就應該這樣」。
有太多東西該做了,例如內建的網路功能,使這樣的程式語言將可以在
網路上互通,程式碼可以在機器之間移動複製和定址,分散式運算可以
完全平順自然地達成。至於多執行緒更是最最基本的。這樣才起碼像是
一個二十一世紀的程式語言。
--
這也是我對於 C++ 後來搞了一些無關緊要的動態功能,如此憤怒,以致
從此就再也不跟隨主流 C++ 發展的原因,方向根本就不對,後來發展的
東西更是一個比一個醜...
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 61.222.173.26
1F:推 Eventis:我還真的把它當C++看了...OTZ 61.62.49.43 02/21