推 MysterySW: 光是boost::blank我就覺得很有用了XD 07/06 11:16
推 bibo9901: 愈多pattern, idiom等等, 其實是代表語言本身缺陷很多 07/06 11:20
推 bibo9901: 那些"細節"不過是為了避開"C++本身的限制"採取的workaro 07/06 11:23
→ bibo9901: und. 07/06 11:23
C++是效能和程序導向 任何東西都有優缺點 如果不是為某些需求 本來就不該學C++
推 shadow0326: 隨著modern c++的發展 其實越來越多idiom已經無用了 07/06 11:26
C++17要出來了((高潮
推 james732: 不過我看Modern C++ design是真的挺挫折的...orz 07/06 11:29
→ Chikei: 說實話,也不需要拿一堆後來的東西罵一篇2007的文章 07/06 11:37
→ Chikei: 時空背景完全不一樣,真正莫名其妙的是原po吧,拿著快10年 07/06 11:42
→ Chikei: 前的文章在現在喊說是受害者才寫得出的東西 07/06 11:42
→ bibo9901: C++11/14/17 是有改進沒錯. 但很多缺點是改不掉的 07/06 12:33
→ bibo9901: 1. idioms/patterns 仍然多如牛毛 07/06 12:33
→ bibo9901: 2. 又增加了很多語言特性, 新舊特性交互關係更加複雜 07/06 12:34
推 descent: 感謝你的心得, 有任何想法都很棒。 07/06 12:35
→ bibo9901: 整體來說這篇文章到今天仍然適用 07/06 12:35
→ descent: 我是贊同文章的想法, 也覺得自己是類似的受害者。 07/06 12:36
你有看到這一行嗎"只要一本《The C++ Standard Library》就大致足夠了。"
=.=
→ noonee: 我個人是c++新手 基本上可以當作啥都不知道 07/06 12:56
→ noonee: 原po S大有不同看法的話 能不能講講看學c++的合適態度? 07/06 12:56
如果沒學過任何語言 就從whilt和if 函式 陣列弄懂就好 再學指標 就很多了
如果只是想學程式概念 去看資結演算
如果是想要精通C++ 我承認C++不是容易快速上手的語言
最好先熟悉IDE操作 然後去追蹤一些比較好的程式碼學STL
比如最基本的vector或是資結演算的實作 ex:heap 用這個學樣板用法
沒看過的STL語法也不用買書 google都有解釋和範例
那些C++書單就像是辭海 不會有人想用字典學中文 頂多是看到沒學過的字詞跑去翻
→ noonee: 我自己原來是寫fortran 的還在了解c++的主要差異點 07/06 12:57
因為C++的繁雜 其實很多時候是寫作風格問題 師傅很重要XD
推 steve1012: 我覺得學的過程用的過程會慢慢體悟 不需要啥態度哈 07/06 13:07
→ steve1012: 很舵東西一開始不懂 等用到了自然有體悟 尤其是你在學 07/06 13:09
→ steve1012: 校寫作業 很少會有很大架構的程式 也不需要讓程式易懂 07/06 13:09
→ steve1012: 自然拼湊一下就拿來用 07/06 13:09
→ steve1012: 像是何時用template 何時用繼承 去做interface 小程式 07/06 13:10
→ steve1012: 感覺不出來 07/06 13:10
→ noonee: 我的狀況有點不太一樣 過去習慣用fortran 也寫過有一些 07/06 13:32
→ noonee: 遠超過學校做業範圍的中型程式 不敢說是大程式還沒到幾十 07/06 13:32
→ noonee: 萬行 07/06 13:32
→ noonee: 會需要學c++是因為幾個互相橋接的 別人寫的程式紛紛從fort 07/06 13:34
→ noonee: ran改用c++ 迫使我們也在思考 到底是先搞個介面就好 還 07/06 13:34
→ noonee: 是真的也要整個大程式重寫 07/06 13:34
→ noonee: 也因為這樣的關係 如果要重寫 先要知道好在哪裡 再來要 07/06 13:35
→ noonee: 先確認整體架構同時考慮未來維護 07/06 13:35
→ noonee: 坦白說 就我個人目前粗淺的認知 除了為了跟別人的程式連 07/06 13:37
→ noonee: 結以外 還沒看到強烈的改用c++的理由 07/06 13:37
支援程度 新軟體都幾乎支援新C++
推 steve1012: 那可以看一下modern c++ design 哪本 07/06 13:38
modern c++ design 是一本書 作者是Andrei
現在蠻尷尬的 因為C++14都出來兩年了 我建議等明年的書 因為C++17
→ noonee: 部分原因出在於我們的程式有大量浮點數值計算 同時會用到 07/06 13:38
→ noonee: 大量的大型矩陣 這在fortran裡有很大的好處 07/06 13:38
→ noonee: 謝謝! 07/06 13:39
大量運算當然還是F占優勢
但是如果要開發平行運算建議轉C++ C++thread越來越強
※ 編輯: Sidney0503 (140.113.63.41), 07/06/2016 13:50:14
→ descent: Essential C++, 這本薄薄的, 看完應該可以接別人c++介面 07/06 13:51
→ noonee: 感謝各位! 07/06 14:05
推 Sunal: n兄應該是作數值分析的吧.時至今日還有那麼多研究單位還在 07/06 19:03
→ Sunal: fortran..真的是歷史包袱 07/06 19:04
→ wtchen: fortran不知道有無想要搞平行處理機制.... 07/06 20:22
→ freeunixer: 就跟 cobol 一樣啊,不是不想換,是要換會轉到哭出來... 07/07 00:31
→ freeunixer: 在上面已經堆太多現成可用的東西,除非你超威砍掉重練. 07/07 00:32
推 CoNsTaR: idiom 和語言缺陷有什麼關系 == 07/07 02:59
→ uranusjr: 其實很多時候確實有關啊, 像 C++ Java 不是 null-safe 07/07 03:03
→ uranusjr: 所以會出現 Null Object Pattern 和建議用 reference 07/07 03:04
→ uranusjr: C 沒有 memory scope 所以會出現特殊的函式參數回傳慣例 07/07 03:05
→ uranusjr: C++ 因為類似原因出現 smart pointer class 等等 07/07 03:05
→ uranusjr: 講好聽是語言特性, 難聽點就是語言沒做好, 只好自力救濟 07/07 03:07
推 andyjy12: 這兩篇最大的問題在於他是10年前的產品。 07/07 07:26
推 james732: 所以我有共嗚是因為我大概也是在十年前學C++的... Q_Q 07/07 11:52
→ rodion: 不是語言沒做好吧 是語言一開始就把妥善使用記憶體的責任 07/08 18:04
→ rodion: 交付給語言的使用者 這本來就是C/C++語言的特色 也因為如 07/08 18:05
→ rodion: 這類型語言才能做到更好的效能&相容性 07/08 18:05
→ bibo9901: 如果"妥善使用記憶體"真的這麼好用, 跟本不會有RAII和 07/08 18:53
→ bibo9901: smart pointer這種半自動GC出現. 即使不說記憶體管理, 07/08 18:53
→ bibo9901: 為什麼會有policy-based design? 還有 enable_if 這些除 07/08 18:55
→ bibo9901: 了折騰沒有其他用處的技術? 因為語言本身缺少interface 07/08 18:56
推 Clangpp: C/C++已經發明很久了 當時可能根本沒想到會這樣 07/08 20:34
→ rodion: 哪裡有人說妥善使用記憶體容易了? 這本來就是這類語言的 07/09 15:44
→ rodion: 另一特色:高門檻 可以單方面說是缺點但不考慮其帶來的好處 07/09 15:45
→ rodion: :彈性高 就稍嫌失之武斷 07/09 15:45
→ cplusplus: 同意樓上,有強大的控制能力&彈性,另一方面就有其難處 07/10 04:08
→ cplusplus: 有些idiom就是為了補強彈性帶來易出問題的地方,開發者 07/10 04:10
→ cplusplus: 易用性並不是最開始C++重點所在。另外RAII除了防止開發 07/10 04:12
→ cplusplus: 者易犯的問題,同時能提供絕對精準的資源控制,這是許 07/10 04:13
→ cplusplus: 多語言自動化上很難做到的。要同時在開發者易用性&絕對 07/10 04:15
→ cplusplus: 控制力都完美很難啊,一定有些不完美的地方。只能說C++ 07/10 04:16
→ cplusplus: 真的不是創造給所有開發者用的語言,沒需要少碰啊(XD?) 07/10 04:18