看板java
标 题Re: 请问阵列的宣告…
发信站清华资讯(枫桥驿站) (Fri Jun 25 04:29:16 2004)
转信站ptt!ctu-reader!ctu-peer!news.nctu!news.csie.ncyu!news.cs.nthu!maple
※ 引述《[email protected] (平淡)》之铭言:
> ※ 引述《[email protected] (benqer)》之铭言:
> > 那你要如何处理以下的问题
> 这很容易吧:
> 需要加的时候才加就行了!
> Take it easy.
既然有需要加的时候, 为何又多此一举把template省略?
就为了少打几个字? 为了让程式看起来像script?
> > 1. template<typename T>
> > void func(T p)
> > {
> > typename T::size_type i= p.size();
> > }
> > 现在你说可以把template省略, T也可以省略,
> > 那请问省略之後, 要如何才能取得参数p的型别(原本为T)的typedef ?
> > 如同上例, 我们原本可以用typename T::来取得关於T type的其他资讯
> > 现在你把这些重要资讯都省略了, 要如何解决以上的问题?
> > 2. template的template parameter不一定只用在函式的参数上, 也可能是
> > 用在函式的区域变数 ex
> > template<typename T>
> > T max(T p1, T p2)
> > {
> > T result;
> > if (p2>p1) result = p2;
> > else result= p1;
> > return result;
> > }
> > 如同上例, 请问如果template跟T都省略了, 你如何指定result跟
> > p1,p2同type这个事实?
> > "由compiler辨析该采用的版本"这句话说得还不够清楚吗?
> > 你要不要再回去K一下c++的书再来讨论?
> "由compiler辨析该采用的版本"中,
> template 字眼的确是有时可省略的。
根本没回答问题, template省略了, compiler如何知道T是template parameter
而不是type name?, 如果T也省略了, programmer如何指定p1,p2, local variable
的type?
这麽喜欢省略, 那你为何不建议把class也省略, 反正class没有return type,
没有return type, }後面有分号的 的 C { };就可以辨析为class了罗?
> > 根本就是屁话, 你有什麽知识跟经验够格为大家指出c++的未来发展方向?
> > 连基础知识都不够, 只是看了script的动态弹性就一厢情愿的自以为是灵
> > 丹妙药, 如果你这麽喜欢script, 请改用smalltalk, static type的c++
> > 是不合你胃口的
> 嗯…看起来这已经不是 script 了,而是比 C++ 更进步的语言。
这麽有远见的话可以去c++标准委员会提案,
看你怎麽说服c++委员会何以用了十年的template可以省略,
以及script特性为何是c++未来发展的方向
> > 什麽弹性? 你可以用那样的弹性应用在那里?
> > 有弹性就一定好喔 ? , 自己再想想吧
> 在「程式发展的过程」中,有弹性是很重要的!
弹性不是绝对的优点.
> > 蠢得要命, function signature不指定回传的type, 要让compiler自己猜
> 不是让 compiler 自己猜,而是从 return 中寻找,这个功能蛮好的啊。
不要活在自己的世界里. 请仔细想一下,不然也可以问一下专家,
不指定return type的优点跟缺点相比, 到底何者为大
> > 就为了少打几个字, 使用此function的人从此得从function的comment or document
> > 猜回传的型别.
> > 我想你乾脆就把c++改成type-less, 所有的type都由compiler
> > 从程式中粹取导出定义好了.
> 程式语言的最终目的,本来就是要让人类轻松简易的表达出所需要的计算功能。
> 一起朝这个方向来努力吧!让 C++ 达到「容易表达」的境地吧。
把return type 省略就叫做容易表达 吗?
我觉得是无法表达吧, 没有return type所以programmer无法表达明确的return type
再提醒一次, 你们的想法真是蠢到爆, 要不要修正就看你们了
--
※ Origin: 枫桥驿站<bbs.cs.nthu.edu.tw> ◆ From: NK219-91-114-115.adsl.dynamic.apol.com.tw