推 windgod124:很多概念推陳出新,軟體的改革也跟著時代潮流 11/04 08:45
→ windgod124:很多東西本來就不適用 就要淘汰~ 11/04 08:46
推 duer:C++比較好用... 只要牽扯到performance C++ >> C# 11/04 08:48
→ duer:只要牽扯到 crossing platform C++ >> Obj-C 11/04 08:48
→ leiyan:還蠻多VC6轉BCB的 11/04 09:01
→ Lordaeron:嗯,C 比較好用 只要牽扯到performance, C >> C++ 11/04 10:57
→ Lordaeron:只要牽扯到 crossing platform C >> C++ 11/04 10:57
→ hongjr:c頂多略大於c++吧 遠大於也太誇張 除非用java思維來寫c++ 11/04 11:43
→ Lordaeron:不然你要OO 來幹嘛? OO不就是神,沒了OO這世界就是黑白? 11/04 11:45
→ hongjr:可攜性c跟c++有差別嗎? 11/04 11:45
→ hongjr:寫oo不代表效能就會大幅下降吧 頂多幾個% 11/04 11:47
→ Lordaeron:頂多哦, 要是真的頂多, 不會出現template這個東西了 11/04 11:49
推 oomusou:可攜性差異很大,c++在不同平台compiler差異很大 11/04 11:49
→ Lordaeron:java搞到沒好搞的也來template一下, Delphi 也來 11/04 11:50
→ Lordaeron:C# 也有, 不就為了performance 11/04 11:50
→ Lordaeron:哦,C++ 你可以跟某些vendor買, 就好了. 11/04 11:51
→ hongjr:不懂為什麼會扯到template template跟oo 效能有什麼關係? 11/04 11:51
→ iincho:windows form很肥... 11/04 11:52
→ hongjr:compiler差異很大? 就算是C也要重編譯阿? 11/04 11:53
→ iincho:是compile出來的東西行為有時候會不一樣... 11/04 11:54
推 oomusou:問題是重新編譯也不會過啊 11/04 11:55
→ iincho:就跨平台來說C的確是比C++好一點.. 11/04 11:55
→ iincho:不會過是還好,有碰過行為有點不同的, 這就很幹...XD 11/04 11:55
→ oomusou:50MHz CPU 你就知道c與c++的差異了 11/04 11:56
→ Lordaeron:不懂的話,去搞懂它吧. 11/04 11:56
→ hongjr:那是程式的問題吧 不要寫標準沒定義的行為還不一樣? 11/04 11:56
→ hongjr:template是編譯時期就搞定的 不懂跟oo有什麼關係 11/04 11:58
→ oomusou:世上不是只有ms與gnu compiler而已 11/04 11:58
→ iincho:搞純軟的應該都覺得compiler出來的東西都很穩定吧(炸 11/04 11:59
→ Lordaeron:不懂就去搞懂它, 就這樣. 11/04 12:00
→ iincho:我也看不懂樓上再說什麼.... 11/04 12:01
→ hongjr:他說的template可能跟我以為的template不同東西吧 11/04 12:03
推 oomusou:簡單的說,c++雖有標準,但各compiler認知不一樣 11/04 12:03
→ Lordaeron:順著看下來就懂的了, 要是還不懂, 我也沒辨法. 11/04 12:03
→ hongjr:ha 我的確遇過sstream在兩台機器行為不同 agree 受教了 11/04 12:04
→ oomusou:實作方式不一樣,結果也不一樣 11/04 12:04
→ Lordaeron:如果還搞不清楚為何template會出現在OO language中 11/04 12:20
→ Lordaeron:就表示你還搞不清楚performance 11/04 12:20
→ hongjr:template最早是type safe的macro 請高手賜教 11/04 12:26
→ iincho:不是,我是不知道他這邊扯這個幹嘛.... 11/04 12:28
→ iincho:舉C++跑得比較慢所以需要template來補洞這點蠻無言的.. 11/04 12:29
→ iincho:應用場合不一樣這樣比沒有意思啊,話說純C的場合會越來越少 11/04 12:30
→ iincho:這點應該是肯定的, 因為系統越來越複雜了... 11/04 12:31
→ hongjr:他好像很討厭OO 但是C++是multiparadigm 你也可以不寫oo阿 11/04 12:31
→ hongjr:c99 library配template配c++11的lambda 沒oo也是在寫c++阿 11/04 13:23
→ Lordaeron:無言? 好吧, 你比較OO囉. 11/04 13:41
→ Lordaeron:寫過Java 的都知道,要是用Hash 之類的, 都必需要cast 11/04 13:42
→ Lordaeron:兩次,才能拿回來用, 但若使用了template 則沒有這個問題 11/04 13:42
→ Lordaeron:performance 上就快不少了. 11/04 13:43
→ Lordaeron:沒OO 何苦C++? 11/04 13:44
→ hongjr:.....看來我真的沒搞懂template和c++ 貽笑大方 見笑 見笑 11/04 14:07
→ hongjr:丟人現眼 此地不宜久留 諸位前輩高人 後會有期 11/04 14:08
→ angusj:template在91年引入C++是拿來設計為container class 11/04 16:38
→ angusj:效能議題是95年Using C++ template metaprograms才大量討論 11/04 16:39
→ angusj:何來template是解決OO效能之說?C++設計與演化沒這麼說吧? 11/04 16:41
推 oomusou:c++ container若沒template而用oo也是要cast兩次 11/04 17:09
推 oomusou:這也是為什麼c#最後還是導入template解決cast效率問題 11/04 17:13
→ Lordaeron:何來之說哦, 不知呢, 你要不要去問一下作者為何拿來 11/04 17:21
→ Lordaeron:設計container用就知囉. 11/04 17:21
→ Lordaeron:我只能說, 人家是大師, 是因為有遠見. 11/04 17:22
→ Lordaeron:但台灣人比較強, 因為我們還有天下. 11/04 17:22
→ iincho:導入template一定比較快沒有錯啊, 只是效能議題其實... 11/04 17:46
→ iincho:即使C++比較慢未來的系統還是會慢慢取代C的地位... 11/04 17:47
→ iincho:template這玩意的用途其實看Android的framework就知道啦... 11/04 17:51
→ Lordaeron:C++ 會取代C, 講了2x年了, Java 會取代C++ 講了1x年了. 11/04 18:00
→ Lordaeron:所以, 請繼續. 11/04 18:00
→ karcher:template有很好用??怎麼我聽到作軟體的做到最後丟說non 11/04 18:51
→ karcher:template才是王道。non T->T->non T->T ....infinite loop 11/04 18:52
→ angusj:為何拿來設計container是為了抽象化和generic設計,效能 11/04 20:08
→ angusj:只是設計時考量的一個要點,但不是全部!何況一個多範式 11/04 20:08
→ angusj:語言,怎會設計一個用法是只為了解決其中一個範式OO的效能 11/04 20:09
→ angusj:問題? 11/04 20:09
→ angusj:這些我印象中在作者的C++的演化與設計一書有提,還請指正.. 11/04 20:12
推 oomusou:C++取代C?別忘了Linux爸爸曾說過C++是垃圾 11/04 20:56
→ oomusou:Linux kernel打死也不可能用C++寫 11/04 20:56
→ oomusou:至於template,我聽到的也都是公司要求pg不能用template寫 11/04 20:57
→ Lordaeron:不template 就別用container否則不斷cast 就飽了. 11/04 21:37
→ shadow0326:我是知道有公司連用STL都會挨罵的 11/04 21:40
→ angusj:不寫template有一部分是歷史因素,如前面有人提過的,不同 11/04 22:18
→ angusj:平台、編譯器,實作不同,產生的結果不同,所以被限制使用 11/04 22:19
→ angusj:後來編譯器漸趨成熟,也很多產品開始使用,印象中mozilla 11/04 22:20
→ angusj:也是如此... 11/04 22:22
→ angusj:另一部分人是為了template的debug message... 11/04 22:24
→ Lordaeron:哪應該是你用的compiler 的問題而已,或者你太窮沒買好 11/04 22:29
→ Lordaeron:一點的, 這種錢就別幫公司省了嘛. 11/04 22:30
→ angusj:以mozilla來說的話,win,mac,linux,solaris,bsd都要能跑 11/04 23:38
→ angusj:還有x86和arm,除了open source的歷史因素外,商業compiler 11/04 23:39
→ angusj:我真不太清楚有哪家可以滿足他的需求... :-P 11/04 23:39
→ angusj:至於其他的大小公司,各有各的考量,但鮮少是針對設計上的 11/04 23:40
→ angusj:缺失 11/04 23:40
→ Lordaeron:codewarrior如何? 11/05 00:15
→ Lordaeron:Comeau 呢? 這個更讚哦. 11/05 00:15
推 oomusou:8051只能跑keil c怎麼辦? 11/05 00:17
→ Lordaeron:8051還有SDCC啊 11/05 08:55
→ Lordaeron:還有turbo51 可以讓你寫pascal 哦 11/05 08:58
→ Lordaeron:要C 還是有sc51 呢 11/05 08:58
→ Lordaeron:還有IAR 的呢. 11/05 08:59
→ Lordaeron:要8051 C++ compiler 有ceibo 的. 11/05 09:01
→ Lordaeron:IAR 的也support C++ 啊 11/05 09:02
→ Lordaeron:怎麼只有有keil c 呢 11/05 09:02
→ Lordaeron:看來, 很多人不只是人活在台灣而已. 11/05 09:09
→ remmurds:回某樓 C#沒有導入template吧 他只有generic 11/05 10:52
→ remmurds:template和generic應該是不能完全劃上等號的吧 11/05 10:52
→ Lordaeron:哪你還不快去問大師們能不能用全等於, 還是部分等於 11/05 11:42
→ Lordaeron:還是只能用等於 11/05 11:42
→ Lordaeron:Software entities created using generic programming 11/05 11:51
→ Lordaeron:are known as generics in Ada, Eiffel, Java, C#, F#, 11/05 11:52
→ Lordaeron:, and Visual Basic .NET; 11/05 11:52
→ Lordaeron:大師Bjarne Stroustrup 說[l]ift algorithms and data 11/05 11:54
→ Lordaeron:structures from concrete examples to their most 11/05 11:54
→ Lordaeron:general and abstract form. 11/05 11:55
→ Lordaeron:所以C# 的template 是不是叫generic, 各位高手自由心證 11/05 12:01
→ Lordaeron:囉............... 11/05 12:02
推 avhacker:C++比較好用... 只要牽扯到performance C++ > C 11/05 15:29
→ Lordaeron:哦,這個比較狠,C++ 可以寫得跑出來比C 快呢. 11/05 19:22
→ zekewang:本來在講MFC..到最後講到template....呵呵呵呵差滿多的 11/06 00:03
→ zekewang:template的確改善了某部分的performance... 11/06 00:15
→ zekewang:關鍵應在於template instance時機點與一般宣告的不同 11/06 00:16
→ zekewang:但討論C++效能...通常應聚焦在virtual function table 11/06 00:16
→ zekewang:實作..比如多重繼承虛擬繼承等...會比討論template適合 11/06 00:18
→ Lordaeron:講什麼都沒用,要拼速度, 請回到C 的身邊. 11/06 00:48
推 ChampYen:這篇很好, 太多 MFC 神話.... 11/06 11:03
推 BalahBalah:偷偷的舉手 MFC/DDK 11/07 00:30