作者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