看板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