→ uranusjr:只要正常一點的編譯器應該都懂最佳化這種東西, 所以實務 03/17 19:50
→ uranusjr:上應該不會有差別... 03/17 19:51
→ azureblaze:如果是ctor和=差很多的奇怪class可能會有差別 03/17 21:14
→ DEATHX:不負責測試的結果,2比1快,不論有沒有開O2,版本gcc4.4.5 03/17 21:17
→ DEATHX:有人可以重做一下實驗嗎?我對於我的數據還滿懷疑的。 03/17 21:18
→ tjjh89017:gcc-4.3.4 on ideone.com 03/17 21:44
※ 編輯: SingleStar 來自: 220.139.52.202 (03/17 21:46)
→ SingleStar:為什麼(2)會比較快呢? 我以為是(1)比較快 @@ 03/17 21:50
推 LPH66:(2) 其實是呼叫 copy constructor 而非 operator = 03/17 22:25
→ LPH66:它會將右邊 operator + 的回傳物件直接丟進去 path 的 ctor 03/17 22:26
→ LPH66:因此每一圈裡這 path 都是全新的 path 03/17 22:26
推 purpose:照這 gcc 版本,大概 rvalue reference 有介入吧!? 03/18 09:13
→ purpose:(1) 用 move assignment 比 (2) 用 move ctor 稍慢一小點 03/18 09:14
推 purpose:剛用 VC2010 測,每次迴圈(1)比(2)得多進一次 move assign 03/18 09:23
推 Donze:做=前不會先呼叫解構子吧 03/18 11:56
推 jackace:不會 都還要做物件的operator=怎麼可能先解構 03/18 12:30
→ jackace:我真的認為只有一個不好的語言才會搞出這麼多pitfall 03/18 14:04
推 jackace:如果不是為了接手既有的code 誠心建議用新語言開發新東西 03/18 14:07
→ jackace:就讓c++慢慢消失在歷史洪流中吧 plz! 03/18 14:08
→ jackace:BTW我指的是c++而已 c是好語言阿! 03/18 14:14
推 purpose:Java 也有 Puzzlers,也是個很壞的語言,嗯... 03/18 15:23
推 jackace:那就用更先進的語言阿 樓上 覺得不好就換囉 03/18 15:55
→ hilorrk:C++的確很多陷阱,不過把這個也算在陷阱裡...? 03/18 16:14
推 iamstudent:這也是我想知道的問題之一,目前業界主流是什麼語言? 03/18 19:40
→ iamstudent:雖然知道c++有不少陷阱,但要別人跟著換語言實在太難 03/18 19:42
→ iamstudent:反過來,教別人避開c++的險境,好像也很沒說服力 03/18 19:43
推 jackace:業界主流還是c++(ic design除外) 所以我只能說開發新東西 03/18 19:47
→ jackace:時盡量用新的 03/18 19:47
→ jackace:BTW 對於學通的人來說 換語言應該不是難事才對 03/18 19:48
→ iamstudent:這個說法應該只適用於語言的基礎使用而已吧? 03/18 20:24
→ iamstudent:實務上的軟體稍微有點規模,應該都不是從0寫起 03/18 20:24
→ iamstudent:而這些基礎的部份往往不是換語言之後也能續用的 03/18 20:26
→ iamstudent:函數庫、模組、跨專案可以再利用的程式... 03/18 20:27
→ iamstudent:只要把開發的時間也納入成本,很可能是個絕對障礙 03/18 20:28
推 jackace:所以我指的是完全的重新開發 如果你已經有了一大堆c++的 03/18 20:44
→ jackace:lib要編譯進你的專案 那當然是沒得解 03/18 20:45
→ jackace:不過如果能夠用別的方式和這些lib做整合而不用編進來 03/18 20:46
→ jackace:又不犧牲太大效能的狀況下 還是可以考慮一下別的語言 03/18 20:47
推 jackace:我覺的要評估的點很多 不能一概而論 但如果能不用c++最好 03/18 20:52
推 littleshan:C的問題超大 怎麼會是個好語言 XD 03/18 21:04
推 jackace:樓上要不說明一下 願聞其詳 03/18 21:11
→ diabloevagto:17807、17810已經討論滿多了,語言不就是自己用習慣 03/18 21:16
→ diabloevagto:就好,這些不過就是工具,畢竟以後工作也不是自己選 03/18 21:16
→ diabloevagto:語言,老闆要用什麼就是用什麼啊 03/18 21:16
→ jackace:所以這些討論是給要當老闆的人看的阿 03/18 21:18
→ diabloevagto:j大對c++怨念很深... 03/18 21:22
推 jackace:我認為c++有其歷史上的階段性任務 而它也沒讓大家失望 03/18 21:26
→ jackace:但是現在是向前走的時候了 有很多語言在c++上發展得更好用 03/18 21:28
→ jackace:可以加快開發速度 提升系統安全 太多特性可以發揮 03/18 21:29
推 littleshan:我不是說C++萬能,而是只有C或C++能選時我傾向C++ 03/18 22:16
→ diabloevagto:話說c++在寫oo上好像不是很直覺,不知道是否是我不太 03/18 22:21
→ diabloevagto:會寫...Orz 03/18 22:21
→ loveme00835:樓上加強一下 ADT 03/18 22:33
推 jackace:c++寫oo非常強勁 但最好避免某些pitfall 會讓日子好過一點 03/18 22:38
推 jackace:有趣的是 你可以觀察一下 google禁止了多少c++的特色 03/18 22:45
推 Chikei:跟common practices不同的只有不要用exception,所以? 03/19 10:00
推 jackace:沒錯啊 我們在寫的時候的common practice包括 03/19 10:09
→ jackace:不要寫copy constructor, 不要operator overloading, pass 03/19 10:10
→ jackace:by ref只能為 const, 不要用RTTI, 不要有default argument 03/19 10:10
→ jackace:不要用c++ exception 不要用多重繼承, 不要用c++11, 不要 03/19 10:10
→ jackace:用stream. 重點就在此 c++做了一堆會造成pitfall的東西 03/19 10:11
→ jackace:導致大家最後都在用c++的子集 那何必咧 03/19 10:12
推 littleshan:他哪有說「不要」,他說的是「only when necessary」 03/19 11:06
推 littleshan:而且google style也不是全部都很有道理 03/19 11:15
→ littleshan:stream很難用沒錯,但printf更危險哩 03/19 11:16
推 purpose:提供東西給你,要不要用都是選擇,這也能拿出來鞭,呵呵 03/19 13:05
推 iamstudent:copy constr與operator=只會有三種case 03/19 13:25
→ iamstudent:可以用default、需要手動改寫、不該使用要關掉 03/19 13:25
→ iamstudent:也許他說的需要時是包含前面兩種,目的是要能看見 03/19 13:30
推 jackace:就是這些選擇讓目前用c++寫的程式維護困難 也許樓上都是 03/19 16:57
→ jackace:都是程式高手 都已經對c++瞭如指掌 所以可以在該用的地方 03/19 16:58
→ jackace:使用正確的做法 問題是現實世界中 很難保證一個團隊中每 03/19 16:58
→ jackace:個人都有這些基礎 我相信樓上各位一定都有遇過 要幫別人 03/19 16:59
→ jackace:擦屁股的狀況 如果有更好的語言 能夠避免這種狀況 為何不 03/19 17:00
→ jackace:用? c++包山包海的特性造成程式維護困難 不能鞭嗎? 03/19 17:01
推 littleshan:那個「更好的語言」實在很難輪到C來當 03/19 19:01
推 holymars:D語言萬歲 03/20 02:02
→ holymars:jackace大就靠你推D了 如果你需要一個更好維謢 更漂亮 03/20 02:02
→ holymars:更先進的語言 歡迎用這個沒什麼人想用的D language..XD 03/20 02:03
→ rodion:上面不瞭解誤會語言用法的 話還 說那麼多 真是無言 03/21 12:15
→ rodion:誰跟你說不要用copy constructor 不要用非const ref...了? 03/21 12:15
→ rodion:各種用法有不同的採用時機 google的標準也不是金科玉律 03/21 12:16
→ rodion:學語言學了半套 結果話講的比誰都大聲 ... 03/21 12:17