看板 C_and_CPP 關於我們 聯絡資訊
原文恕刪 文章被推太長很難回覆單一推文 還有討論的內容其實也和原文無關了,所以新開一串,保留所有推文 ---------------------------- Lordaeron 和 csfgsj 是同一個人 有在看 softjob 的應該都知道 csfgsj 吧 呵呵 大家不用再理他了,笑笑就好 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.113.193.217 ※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1505626198.A.ED9.html
CoNsTaR: XDD09/17 14:23
LPH66: 推一個, 不過我還滿好奇這要怎麼改...09/17 15:15
※ 編輯: PkmX (140.113.193.217), 09/17/2017 15:36:12
jimfan: 可能我差勁吧,覺得C++變得複雜到不行09/17 16:48
windows2k: 不只C++啊..所有程式語言都越變越複雜, 需求越來越高09/17 18:44
windows2k: C#8, Java9, PHP7..幾十年前程式語言哪有版號的觀念09/17 18:45
uranusjr: C++ 的問題一直都是太多東西大雜燴, 不是複雜是主題太多09/17 18:46
stucode: C++ 威力強,可是涵蓋層面廣,難以駕馭精通。09/17 19:46
Lordaeron: 加了這一堆東西,會比較強? 哪之前的人有什麼寫不出來?09/17 21:21
Lordaeron: 不明著沒事找事.09/17 21:21
你的意思是只要世界上出現了一個圖靈完全的語言 之後再出來的其他圖靈完全語言就都是沒事找事? 都是圖靈完全啊,A 能做到 B 也能做到不是嗎? 還是你的意思是新出的語言東西一定要比舊語言少? 比誰功能最少可以做到一樣多的事情就對了? 那我認真推薦你去用機器語言,真心保證你滿意
uranusjr: 其實新東西大體上還是不錯, 是舊包袱甩不掉09/17 21:37
uranusjr: 舊的語法實在是太多雷再不改真的要被取代了09/17 21:38
Lordaeron: 新的語法雷有比較少?09/17 23:43
holydc: 組語有什麼東西寫不出來?要高階語言做什麼09/17 23:58
xam: 我覺得難的 template 已經很複雜了,但C++11/14裡那只是基本09/18 00:26
steve1012: 更expressive 有啥不好 你可以選擇不要用啊09/18 00:38
Ommm5566: 會比較強 c++11以來多了很多強力工具09/18 06:39
Ommm5566: move semantics/auto/lambda/shared_ptr......09/18 06:41
Ommm5566: 程式碼可以選擇跑更快or比較好讀or好維護09/18 06:41
Ommm5566: 不想用這些東西就寫成c like阿 if+while+pointer+struct09/18 06:45
ronin728: C++就是洪拳啊,虎形鶴形蛇形螳螂形南少林花拳全加一塊09/18 08:03
CoNsTaR: 有這個東東可以用 我都對tmp重新燃起希望了 拜託不要修09/18 08:41
CoNsTaR: 掉啦 QQ09/18 08:41
sppmg: holydc +1 ,我直覺也是asm XD09/18 10:31
Lordaeron: 鬼扯ASM,就已經不是在討論問題了。09/18 11:46
鬼扯以前有什麼寫不出來才不是在討論問題 工具的演進不一定要能做到更多事情,還有很多面向可以做改進
Lordaeron: C++多了一大堆,然後有人說,你可以C like 啊09/18 11:47
Lordaeron: 哪沒問題啊,何苦搞哪麼多?一來雷沒變少,二來反而變多09/18 11:48
對啊,何苦發明那麼多種排序 通通氣泡排序就好啦 反正其他排序做得到的氣泡排序也可以嘛
Lordaeron: 各家的實作又不盡一致,何不修正舊有的問題?09/18 11:49
編譯器實作和語言也有關係? 那我現在也去做一個 java 編譯器 java 是不是也雷了? 因為要向下支援是 c++ 的核心信念 還有,舊有的問題? 請教有什麼舊有問題?
Lordaeron: 什麼lambda, auto的,又不是沒它們就不能寫,不好寫.09/18 11:49
Caesar08: 長知識囉09/18 12:10
lc85301: 我已經看不懂這是什麼東西了(yay09/18 12:39
steve1012: 沒 auto 要多打字的確是很不好寫啊 lol09/18 12:45
steve1012: move semantic 跟 shared pointer 也的確更好維護09/18 12:46
steve1012: 又不是叫每個人實作這些功能 只是拿來用還能嫌 lol09/18 12:47
steve1012: 愛用 c 可以用 c啊09/18 12:47
Bencrie: 更炫炮09/18 13:14
Sidney0503: 不爽不要用 每個語言都有自己的毛和邊界問題09/18 13:29
Sidney0503: 不同語言適用範圍也不一樣09/18 13:29
Sidney0503: 你自己也說沒auto一樣可以寫程式 沒人拿槍逼你用auto09/18 13:29
Sidney0503: 事實上就是除了C++沒有語言可以做到move semantic09/18 13:30
Sidney0503: Rvalue Reference就是只有C++11才有 這種效能上的掌09/18 13:31
Sidney0503: 控 是比其他語言強的 所以追求極致效能調教不會使用09/18 13:31
Sidney0503: C語言而是C++09/18 13:31
Sidney0503: 你不需要這麼細微的效能處理 就不要用c++09/18 13:33
Sidney0503: 所以沒有C++11 可以用asm寫出類似&&的想法09/18 13:34
Sidney0503: 提asm沒有錯啊 並不是鬼扯09/18 13:34
Sidney0503: C語言也有undefined behavior 不少還被C++規範09/18 13:38
Sidney0503: 來C++主場戰C++ 你也是蠻幽默的09/18 13:42
Lordaeron: 不爽當然可以不用啊,但有人提到雷了,就當然得提啊。09/18 14:23
你想提雷? 那請問一下你講的 lambda、auto 雷在哪裡? 請指教
Lordaeron: 致於你扯的效能,我就等你一篇C++11 VS C的大作了,戰吧09/18 14:24
Sidney0503: 地表上就是除了C++沒有語言可以玩Rvalue-ref09/18 14:32
Sidney0503: 地表上就是沒有語言可以做到比C++更細微的調教09/18 14:34
Sidney0503: 戰不起來09/18 14:34
grayStone: c++ > c09/18 15:02
Lordaeron: 就等你的測試大作啊,戰不戰得起,不會是用嘴吧。09/18 15:06
Lordaeron: C++ VS C, PERORMANCE COMPARE!! 等待中。09/18 15:08
bibo9901: move semantics 是特色沒錯, 但要說是"優點"可能不適合09/18 15:08
bibo9901: 有 gc 或 jit 的語言幾乎是不需要move semantics09/18 15:09
不是不需要,是根本做不到 當你需要這個效能的時候你才發現你一點辦法也沒有
Sidney0503: 有GC就是慢 比如像java 但是java有一種情況可以有09/18 15:14
Sidney0503: 接近c/c++效能的狀況 就是custom Collector09/18 15:15
bibo9901: 其實用 C 做分解動作也可以有move semantics同樣的效果09/18 15:20
Sidney0503: 成立的原因也很簡單 效能可以取決於釋放空間的時機09/18 15:20
bibo9901: 但c++還多了一堆負擔: rule-of-five, universal ref. 等09/18 15:21
Sidney0503: 那是因為不同狀況下 move和copy成本不一樣09/18 15:28
Sidney0503: 所以c++11提供了選擇複製或搬移兩種手段選擇09/18 15:28
Sidney0503: 語言本來就是針對問題選需要的工具09/18 15:28
Sidney0503: 追求極致調教的3A遊戲引擎核心幾乎都是用C++刻的09/18 15:29
Sidney0503: 然後接口成python這類手稿語言方便快速開發09/18 15:30
Sidney0503: 當然快的代價就是不穩 C++本身又包山包海 自然是09/18 15:32
Sidney0503: 會有不少行為會讓compiler錯亂 現在C++的精神就是09/18 15:33
Sidney0503: 提供大量的選擇 每個選擇都會有優缺點 09/18 15:34
Bencrie: 亂七八糟09/18 15:34
Sidney0503: 樓上這個說法我還真無法反駁 XDDDDD09/18 15:34
jimfan: 話說回來constexpr就是為了在編譯時間預先找出陳述式的值09/18 15:53
jimfan: 用以減少runtime的運算,說到底還是為了讓程式跑更快,代09/18 15:54
jimfan: 價係語言、編譯器變複雜(我這不是廢話嗎)09/18 15:56
jimfan: 用心良苦 :-)09/18 15:57
Lordaeron: @Sidney0503,別再嘴了,只講performance就好了。09/18 17:27
只講 performance? 歡迎歡迎,以下請 L 大說明說明 c++ performance 有多雷
Lordaeron: 越來越多雷這件事,本來就是成立的。無可否認。09/18 17:28
你講這句話一點根據也沒有,這才真的無可否認
holydc: 就已經認定新語法都是雷了,人家講什麼當然看起來都像09/18 20:29
holydc: 鬼扯嘴砲囉09/18 20:29
yoco: ...C++ 又發瘋了...09/19 00:03
Lordaeron: 舊語法就一堆雷了,要說新語法沒雷,要怎麼講?09/19 11:50
以前生的小孩是殘障,現在生的小孩一定也是殘障?
final01: 坐等yo 神開戰XD09/19 13:43
holydc: 連舊語法都雷了哈哈哈09/19 20:03
steve1012: 到底是什麼雷啊 雷來雷去打高空 好像幾萬個雷一樣09/20 00:30
bibo9901: most vexing parse 就可以雷到你跳起來09/20 00:34
steve1012: 這個"本來"是不是該有點根據啊 09/20 00:34
CoNsTaR: 不是啊 自己不會寫當然要怪語法雷啊 這樣自尊心才舒服嘛09/20 02:03
bibo9901: 只有語法雷? exception 雷不雷? 多載消解雷不雷?09/20 08:56
bibo9901: 各種implicit conversion雷不雷?09/20 08:57
CoNsTaR: 期待樓上哪天設計出一個對任何面向都沒有缺點的語言09/20 09:49
CoNsTaR: 到底是你該配合、學習怎麼駕馭一門語言和發揮它的優點09/20 09:49
CoNsTaR: 還是語言應該做到讓你隨便寫都不會有問題?09/20 09:49
CoNsTaR: 充分瞭解如何對付一門語言的缺點、最大限度發揮它的優點09/20 09:49
CoNsTaR: 不就是「程式設計師」和別人不同的地方?09/20 09:50
CoNsTaR: 要不然就寫寫程式、沒事嘴砲一下我妹也會啊09/20 09:50
steve1012: 的確是挺不雷的啊…09/20 10:38
Killercat: MVP我前陣子才被雷到一次 orz09/20 10:54
Killercat: 不過MVP比較偏向是因為相容性而無法補齊的洞09/20 10:54
Killercat: 不過現在已經有搭另外一座橋給你就是09/20 10:54
Killercat: 另外其實compile time都是小雷 runtime才是大雷....09/20 10:55
shadow0326: 我記得在板上也看過幾次被MVP雷到的問文 XD09/20 11:33
caras: 妹妹躺著也中槍 QQ09/20 12:27
CoNsTaR: 幫妹妹QQ XDD09/21 06:23
firejox: 只要能減少開發維護成本都很好:D09/21 09:14
Ommm5566: universal ref是負擔? 直接可以搬rvalue的方法說慢09/22 07:22
Ommm5566: 我還真不知道哪個語言可以處理Lvalue比Rvalue快09/22 07:23
Ommm5566: 請bibo9901大大說一下 順便說一下哪個有gc和jit的語言09/22 07:23
Ommm5566: 效能贏過c++ 09/22 07:23
Ommm5566: 另外說C++雷的 麻煩說一下哪個語言不雷09/22 07:25
Ommm5566: 這邊有很多會各種語言的可以和你討論09/22 07:25
Ommm5566: 連特性都不懂還可以大放厥詞 真的很好笑09/22 07:35
Lordaeron: 既然有雷不排,放新雷? 另外,沒人說慢哦,是看有多快而已09/22 21:10
有多快你能嘴? 事實就是完爆用 gc、jit 的語言 這樣滿意嗎?
Lordaeron: 而且,從沒有人說過任何面向都沒缺點,只有說排雷而已. 09/22 21:11
只要有雷還沒被排掉,你就會繼續說要排雷 那意思和任何面向都沒缺點有什麼不同?
Lordaeron: 程式寫久了,中文邏輯會變不好.09/22 21:12
看得出來
Lordaeron: CPU本身就一堆雷了.09/22 21:14
呃… 請問和 CPU 的關係在哪裡?
Lordaeron: 用:不然不要用啊? 或是, 哪有沒雷的語言, 這種人根本09/22 21:17
Lordaeron: 沒理性討論的空間.09/22 21:18
直接說別人沒有理性討論空間是否更沒理性討論空間?
Lordaeron: 充分瞭解如何對付一門語言OOXX 的,叫compiler09/22 21:20
要是你不用懂語言特性的話,那 compiler 也不用懂啦 compiler 懂的知識至少得和 coder 一樣多,所以 coder 寫的程式 compiler 才能都看 懂 但如果 coder 像你一樣覺得自己什麼都不用會,那 compiler 會那麼多要幹嘛? 永遠沒有用到的一天啊
Lordaeron: 寫程式是為了解決問題,而不是要發揮語言的OOXX.09/22 21:21
Lordaeron: 你發揮得多好都好,問題沒解決,一樣是一點價值都沒有.09/22 21:21
我還以為能夠正確解決問題是基本勒… 原來有人連解決問題都覺得是挑戰也在這邊談語言特性 既然你只要能寫出會動的程式就心滿意足了 那你當然不需要這些對你來講是自找麻煩、問題一堆的「特性」啦
steve1012: 感覺根本沒講清楚怎麼雷啊 隨便丟個 mvp exception ove09/22 23:09
steve1012: rloading implicit conversion 就說這語言很雷 沒寫篇09/22 23:09
steve1012: 文章說服大家為啥算雷 為啥沒辦法避免 我是不太信服有09/22 23:09
steve1012: 多雷09/22 23:09
最後請 Lor 大說明一下,你整篇都在說 c++ 一堆雷 既然 c++ 雷這麼多,隨便挑幾個出來舉例一下應該不難? 懇請 L 大賜教 <(_ _)> -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 24.114.73.54 ※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1506110745.A.A06.html
chuegou: 戰! 以前的板風是不是就這樣阿?09/23 04:22
※ 編輯: CoNsTaR (24.114.49.27), 09/23/2017 05:42:52
Ommm5566: 真的覺得雷 就是語言開發社團發issue 順便提一下這個09/23 08:49
Ommm5566: 問題在實作compiler過程如何改進阿XD09/23 08:50
Ommm5566: 現實就是有一好沒兩好 通常雷都是為了達到某種好處存在09/23 08:51
Ommm5566: 的副作用 Stroustrup說了這世界上分成兩種語言09/23 08:53
Ommm5566: the ones people complain about and the ones nobody u09/23 08:53
Ommm5566: se.09/23 08:53
Ommm5566: 我說使用語言有兩種人 去理解它的人 和不去理解它的人 09/23 08:55
Lordaeron: 有什麼雷,自己GOOGLE不就有了? 09/23 09:36
Lordaeron: 你連PERFORMANCE都要代答,就快回一篇比較吧!! 09/23 10:17
Lordaeron: 而assembly我只會x86的x64的沒在看 09/23 10:18
Lordaeron: C++的雷怎麼找,教你用google找英文c++ traps09/23 10:18
Lordaeron: 或用c++ pitfalls來查, 也一堆.09/23 10:22
Ommm5566: 悲哀 一開始說多這些東西有比較厲害嗎 真的回答了就09/23 10:23
Ommm5566: 說雷很多09/23 10:23
Ommm5566: 使用指標指向配置空間以外記憶體操作會壞掉算不算雷?09/23 10:26
Ommm5566: 你先回答這個問題 這個問題算雷 不算雷的判斷方式說出09/23 10:26
Ommm5566: 來 才能討論其他東西是不是雷09/23 10:26
Ommm5566: 如果在你眼裡這個是雷 那就是語言特性的你不能接受而已09/23 10:27
Ommm5566: 如果這個不算雷 那什麼我覺得不雷的你覺得雷?09/23 10:27
Ommm5566: 什麼我覺得雷的你覺得不雷? 09/23 10:27
Ommm5566: 我覺得效能慢叫雷 C++可是最不雷的語言 09/23 10:28
Ommm5566: 如果你不能接受效能的說法 那請說出哪個語言可以把09/23 10:29
Ommm5566: Lvalue可以讓user叫compiler當Rvalue處理09/23 10:30
Ommm5566: 另外Lordaeron在上一篇推文說到什麼事都有辨法避免啊09/23 10:31
Ommm5566: 請問如何在操作memory的時候如何讓人避免使用錯誤記憶體09/23 10:31
Ommm5566: 區間的同時不要使用檢查以免降低效能?09/23 10:32
Ommm5566: 你說不出這個問題的解答 那麼雷的就不是語言而是自己09/23 10:32
Ommm5566: 別人已經回答你第一個有比較厲害的問題嗎 你卻不回答09/23 10:34
Ommm5566: 別人問你甚麼是雷 09/23 10:34
Ommm5566: 而且雷確實有變少 C++有對未定義行為做規範 09/23 10:36
Ommm5566: 你的第二個問題也回答了 09/23 10:36
Ommm5566: 沒auto確實比較不好寫 當要用一個變數接function回傳值 09/23 10:36
Ommm5566: 如果要改type 以前要改兩個地方 有auto就少改一個地方09/23 10:37
Ommm5566: 同時回答你有沒有比較好 雷有沒有比較少了09/23 10:37
Ommm5566: 然後一開始說c++雷 又跑去說cpu雷09/23 10:38
Ommm5566: 事實上誰在跳針很明顯 你的問題都被回答了09/23 10:40
Ommm5566: 你卻避而不答別人的問題09/23 10:40
steve1012: 好啦我幫妳查了 http://www.programmingincpp.com/a-li09/23 11:02
steve1012: st-of-traps-and-tips.html09/23 11:02
steve1012: 還有幾篇其他的 這些就是你說很雷的地方嗎?09/23 11:03
Lordaeron: 如果才查到幾篇,哪你的該好好回去再查了.09/23 13:51
Lordaeron: 致於有哪些雷,請自行查,別自札草人自己打. 09/23 13:51
steve1012: 先說雷的應該要舉吧…又不是我說是雷的 問老半天也講 09/23 14:01
steve1012: 不出來哪裡雷09/23 14:01
Ommm5566: 你提出的所有問題都被回答了 說別人不理性自己卻講不出09/23 14:08
Ommm5566: 任何一個東西 別人說performance你要求一篇文章比較09/23 14:08
Ommm5566: 別人要求你說哪裡雷卻叫別人自己查 如果你的思考方式只09/23 14:09
Ommm5566: 有這種程度09/23 14:09
Ommm5566: 那你還是多上FB或D卡文 那邊比較適合你09/23 14:10
查了一下這帳號,原來是 csfgsj 的分帳 真不該回這篇浪費自己力氣的……… ※ 編輯: CoNsTaR (99.242.178.39), 09/23/2017 14:39:53
Lordaeron: 咦? 浪費力氣? 我說雷的,不就舉了? 不會去查來怪我? 09/23 14:56
Lordaeron: 既然有人說performance會比較好, 我查過沒人提,當然得 09/23 14:57
Lordaeron: 要,不然你查出來給我也可以. 09/23 14:57
Lordaeron: 至於講不下去, 鬼扯什麼分帳號的, 閃一邊涼快去就好了. 09/23 14:58
Lordaeron: 這等程度,還可以扯分帳號的,有多少解決問題的能力可見 09/23 14:59
Lordaeron: 一斑!! 09/23 14:59
Ommm5566: 是喔 我都查不到有人說C++雷耶 隨便查都說C++棒棒棒 09/23 15:34
Ommm5566: 你查不到來怪我? 這等程度 有多少解決問題的能力可見 09/23 15:35
Ommm5566: 不然你查出來給我也可以至於講不下去閃一邊涼快去就好了 09/23 15:36
Ommm5566: 這種言論真的是既理性又有助於討論 受教了 09/23 15:37
Ommm5566: 既然你google能力不太好我查給你 09/23 15:39
Ommm5566: http://lmgtfy.com/?q=c%2B%2B+performance 09/23 15:39
Ommm5566: 我已經查給你了 不用謝 09/23 15:40
Ommm5566: 順便建議你 如果連查資料都不會還是不要碰語言好了 09/23 15:41
Ommm5566: 對你而言看起來真的太困難 連這都查不到 09/23 15:42
Ommm5566: 順便建議可以去做麵包 不用查資料也可以做 09/23 15:42
Ommm5566: 不過照你連這都查不到來推論 大概也不會使用食譜吧? 09/23 15:43
Ommm5566: 我個人做麵包是會查網路資料啦 因為我會使用google 09/23 15:43
Ommm5566: 不過你大概也會抱怨麵包製作過程很雷 烤箱很雷09/23 15:44
Ommm5566: 所以我建議你還是不要做麵包好了09/23 15:45
Lordaeron: 笑死人了, c++ performance問題是C++出來時就有的了.09/23 16:14
Lordaeron: 跟現在在扯的哪個何關? 你會下關鍵字嗎?09/23 16:14
Lordaeron: 如果你連自己都找不到, 就別出來搞笑了. 09/23 16:15
Lordaeron: 剛無聊又查了一下, C++ auto type pitfalls,第一頁就.. 09/23 20:49
steve1012: 原來你覺得 auto 很雷啊 我隨便看了搜尋前幾篇 沒搞懂 09/24 01:12
steve1012: 規則算 c++雷? 09/24 01:12
steve1012: 那弱型別語言不就宇宙最雷 09/24 01:16
※ 編輯: CoNsTaR (24.114.71.165), 09/24/2017 01:38:10
sa074463: 他的ID風格看習慣了,原PO太認真了 09/24 09:15
Lordaeron: @sa074463,原來你這麼熟我? @steve1012搞懂? 09/24 09:37
Lordaeron: 該不會是要人去K SPEC 的吧? 09/24 09:37
steve1012: 不然你說一下 auto到底哪裡雷 或是貼一篇文章啊 我是真 09/24 09:42
steve1012: 的不知道你在說哪裡雷 09/24 09:42
steve1012: 還是你根本不太會 c++ 09/24 09:42
Lordaeron: 我真的不太會C++,但你在唬爛有看GOOGLE的結果. 09/24 09:47
steve1012: google 第一篇是 stackoverflow 問說是否 dangerous 09/24 10:37
steve1012: 第二篇問為啥要選 auto 當關鍵字 09/24 10:37
steve1012: 你到底是在拿那篇當佐證 你貼出來不就行了 09/24 10:37
shadow0326: 有在逛軟工板的話應該都還滿習慣這ID風格的 09/24 12:18
Lordaeron: @steve1012,咦?你不是不知我在說什麼的嗎? 09/24 18:47
Lordaeron: 哪既然你有看到,不就是了? 09/24 18:48
CoNsTaR: 某 L 要嗆來嗆我啊 怎麼柿子挑軟的吃一直找 s 大的麻煩 09/25 01:19
CoNsTaR: 勒? 09/25 01:19
Lordaeron: 嗆你什麼? 誰在嗆人呢? 你憑啥代回? 09/25 13:09
steve1012: 你根本啥都沒回答啊 只有跳針 反正你連佐證都講不出來 09/25 14:09
steve1012: 我是懶得戰了 我可不想被水桶 09/25 14:09
wtchen: L先生我再警告你一次,你不爽用C++可以不要用,但是請不要 09/25 16:11
wtchen: 來亂。不然就浸水桶。 09/25 16:11
ggBird: 直接桶了啦 09/25 18:43
sunneo: 已經快10年了 版上大大們各有專精 相信只是各方面理解不同 09/25 22:25
Lordaeron: 版工是吧.我亂哪一條了? 你是版工就隨你爽是吧? 09/26 22:16
s25g5d4: 挑釁版主囉 09/26 22:17
Lordaeron: @steve1012,哦,查了又變看不到?哪些都不是證了? 09/26 22:17
Lordaeron: 是版工挑釁!! 請搞清楚方向. 09/26 22:19
Lordaeron: 整串下來,哪些人只在對人,不對事,很清楚的,別刪文哦. 09/26 22:20
wtchen: 好了,L現在浸水桶了,不要理他了 09/27 02:22