作者查詢 / loveme00835
作者 loveme00835 在 PTT [ C_and_CPP ] 看板的留言(推文), 共8629則
限定看板:C_and_CPP
看板排序:
全部C_and_CPP8629T-ara3254Rainbow2642DSLR640KARA631movie486SNSD400Gossiping259KoreanPop109Programming98Soft_Job60GirlsDay49BLEACH42Beauty41Sub_CS32AfterSchool30BLACKPINK30C_Chat24car24GFRIEND21KoreaDrama21Olympics_ISG19C_Sharp14FourMinute11StupidClown11Lifeismoney10Keelung8Key_Mou_Pad8SecretGirls8ChungLi7MobileComm7Theater7APINK6NTOU_TALK6ONE_PIECE6WorldCup6EAseries5Visual_Basic5CLHS-TALK4CVS4DC_SALE4marriage4TVXQ4ask3AyaseHaruka3CarShop3DJ_Ken3hypermall3Korea3Prob_Solve3SISTAR3BEG2ComGame-Plan2HIGHLIGHT2japanavgirls2KR_Entertain2LeeMinHo2MBLAQ2Mo-Musume2MusicGame2NineMuses2Oneday2PokeMon2SHINee2SYSOP2Tech_Job2TeenTop2THUMath952AC_In1AOA1ArakawaCow1Archery1ASM1BoA1Cloud1CSonline1Food1FTISLAND1fx1hardware1HelloVenus1INFINITE1joke1KS96-3181Little-Games1MH1missA1NANLIN3011NCKU_ECO971NTHUTL971ParkMinYoung1PeopleSeries1PttNewhand1SD-GundamOL1SFFamily1SSSH-16th-Fk1SuperJunior1Test1U-KISS1<< 收起看板(99)
3F→: [](){} 是 lambda expr, 它的功用就是建立 closure07/26 11:08
4F→: 物件, 在 lambda expr 後面直接加上 () 是針對這個07/26 11:09
5F→: function object 直接呼叫, 所以整個敘述的型別取決07/26 11:10
6F→: 於 lambda expr 裡的 return statement, 這個常被用07/26 11:10
7F→: 於物件的初始化, 某些物件必須要在建構的時候就完全07/26 11:11
8F→: 給足參數, 沒辦法先用 default ctor 建構之後才用07/26 11:11
10F→: init() 之類的成員去預備好物件狀態, 所以常會在這個07/26 11:12
11F→: lambda expr 裡做好需要的判斷, 所以你會經常看到 if07/26 11:13
12F→: /switch 語句在裡頭, 通常回傳的物件會是 movable,07/26 11:18
13F→: 這時候的 closure 起到的就是 inline factory method07/26 11:18
14F→: 的角色07/26 11:18
4F→: 用 switch 不建議加 default label07/19 22:42
6F→: 使用 default 編譯器就沒機會幫你找出未處理的 case07/19 22:50
7F→: 而 non-enum 也要好好考慮是否真的適用 switch07/19 22:51
8F→: https://godbolt.org/z/9Ws5v307/19 22:51
9F→: 寫 C++ 最重要的概念是把檢查的工作都交給編譯器, 編07/19 22:52
10F→: 得過的程式碼就不容易出錯07/19 22:53
11F→: 上面程式碼應該下 -Wswitch 搭配 default 0rz07/19 22:57
12F→: 比較好的設計是把輸入和程式內部表示分開, switch07/19 22:59
13F→: over char 是權責沒有分離的例子, 既然 switch 的07/19 23:01
14F→: label 數量是固定的, 就沒道理使用 char 來表示方向,07/19 23:02
15F→: 一來不能用程式碼來闡述設計, 二來因為値域太大的關07/19 23:03
16F→: 係, 所有介面以及運算都是潛在會出 bug 的地方07/19 23:05
6F→: 可以試著看看原文書, 中譯品質都不是很好07/15 20:27
7F→: Primer -> Standard Library -> Exceptional C++ ->07/15 20:31
8F→: Templates 照這個難度看完你就可以啃更進階的書了07/15 20:31
9F→: 如果你未來打算看 Effective 系列建議從 Effective S07/15 20:42
10F→: TL 開始07/15 20:42
11F→: 學 C++ 最重要的是學習它風格還有哲學, 從標準庫對設07/15 20:48
12F→: 計還有實作開始, 接著 Exceptional C++ 可以補充更多07/15 20:48
13F→: 語用範例07/15 20:48
15F→: 看 Effective STL 主要可以知道有什麼工具可以用, 以07/15 21:05
16F→: 及這個工具是如何運作, 看完甚至可以自己寫更多小工07/15 21:05
17F→: 具. 這是 Effective 系列其他本沒辦法學到的; 而且才07/15 21:05
18F→: 能讓一個人寫出真正的 C++07/15 21:05
6F→: 難得看到有接回傳值 :)07/15 12:51
39F推: 人活得好好地為什麼要學希佳佳呢 Q_Q07/11 01:53
57F→: 用 OOP/SOLID 來考慮學 C++ 是否搞錯什麼 xD C++ 的07/13 10:59
58F→: 特色又不是 OO07/13 10:59
141F→: 以為走錯板, 原來是在討論 Ancient C++07/13 18:37
151F→: 要嘴 @MartinJ40 的連結跟 macro 也先看一下 [P1371]07/13 19:05
152F→: 跟 [P1221] 的狀態, C++ 也是 community driven lang07/13 19:07
153F→: 還要經過 ISO commitee review, 除了相容性要顧最重07/13 19:09
154F→: 要的是 "標準化" 這件事. 你喜歡其他語言是你的自由,07/13 19:10
155F→: 但是在說 "某語言都沒有什麼特性" 前先搞清楚自己是07/13 19:11
156F→: 不是真的熟悉它, 然後如果覺得什麼特性很缺, 你可以07/13 19:12
157F→: 發提案, 這就是 how modern C++ looks like07/13 19:12
158F→: 看討論還以為是考古學有什麼重要發現07/13 19:13
159F→: 簡單的說, 不需要標準化的語言你想要什麼特性都很容07/13 19:15
160F→: 易07/13 19:15
183F→: 你已經幫我回答大部分的問題了. 語言標準化尤其是 IS07/13 20:06
184F→: O 標準, 最終都是為了服務業界. 所以有關 functional07/13 20:06
185F→: language 的提案被 reject 是常有的事情, 能用舊特07/13 20:06
186F→: 性達成的功能, 除非新特性可以做得更好更有 "效率",07/13 20:07
187F→: 否則它不會變成語言的一部分. 標準化圍繞在軟體開發07/13 20:07
188F→: 議題上; 而不是發掘語言的可能性. 所以前面才會說道07/13 20:07
189F→: 先熟悉這個語言再來評論比較好07/13 20:07
190F→: 這就好像討論為什麼魚沒有腳, 所以和雞比牠絕對跑不07/13 20:09
191F→: 快一樣.07/13 20:09
192F→: 你來魚板不去了解為什麼魚不長腳, 然後推廣雞有腳多07/13 20:11
193F→: 棒不是很奇怪嗎? 而且我從來沒有說過魚是最棒的生物,07/13 20:11
194F→: 你的自然語言可能也有待加強.07/13 20:11
12F→: 你會發現在這個板問問題得到的答案都是改寫別的語言07/06 21:39
13F→: 確保安全性不從語言層面做的話就得要寫的人下手, 可07/06 21:49
14F→: 以參考 CERT/MISRA, 只是在工具使用還有人員訓練做 t07/06 21:49
15F→: rade-off 而已07/06 21:49
16F→: 後來你會發現與其花錢買商用軟體檢查漏洞, 叫員工讀07/06 21:55
17F→: 熟語言標準, 遵守某種寫碼規範, 總總措施還不如直接07/06 21:56
18F→: 改用不容易犯錯的語言成本來得低廉07/06 21:56
28F→: 以專案管理的角度來說:決定要穿這鞋子也是你的問題07/11 22:28
29F→: 事實就是雖然成為程式語言, 但會真的當語言學習的人07/11 22:34
30F→: 並不多, 所以寫出來的東西都像小朋友用積木兜出來的,07/11 22:34
31F→: 看寫法就知道一定會出 bug07/11 22:34
38F→: 語法->語意->語用, 只到第一層, 對第二層一知半解,07/13 09:29
39F→: 這就是你說的「能溝通就好」. 不過因為語言的複雜度,07/13 09:29
40F→: 這個議題已經和一般開發者沒什麼關係了07/13 09:29
43F→: 我的意思是, 問題的核心在於開發者不懂自己在寫什麼,07/13 12:01
44F→: 而不是有沒有選對語言, 選錯語言還是可以做對事情,07/13 12:01
45F→: 只是付出成本比較高. 所以一開始用語言來評斷就是錯07/13 12:01
46F→: 的立論, 終究是人的問題07/13 12:01
6F→: 你覺得介面實作分開是為了什麼?07/13 03:27
7F→: 把東西放在標頭檔再分離編譯的情況, 對不同的 transl07/13 03:43
8F→: ation unit 來說, 引入的多份型別/模板/物件彼此其實07/13 03:43
9F→: 是不一樣的; 但因為要保證 ODR 所以它們被視為是相同07/13 03:43
10F→: 的實體. 即使模板也可以細分有無特化/具現化, 一般最07/13 03:43
11F→: 簡單的使用通常都是無特化再透過 implicit instantia07/13 03:43
12F→: tion 來自動產生實作, 因為要完整的程式碼才有辦法做07/13 03:43
13F→: 的這件事, 所以才會有模板實作都要寫在標頭檔的錯覺.07/13 03:43
14F→: 事實上模板也可以寫成像你說的一樣: 介面/實作分離,07/13 03:43
15F→: 但要很明白你的目的, 因為這種寫法很容易違反 ODR.07/13 03:43
16F→: 先明白 include 只是複製貼上, 那再來從 ODR 的角度07/13 03:52
17F→: 思考為什麼有的東西可以放在標頭檔裡其他的卻會造成07/13 03:52
18F→: 連結錯誤, 再來想想這樣分開寫到底有什麼好處. 如果07/13 03:52
19F→: 今天我分開寫沒辦法得到上述的好處, 也不會造成連結07/13 03:52
20F→: 錯誤的話, 當然全寫在標頭檔裡比較方便囉 (節省同步07/13 03:52
21F→: 的成本).07/13 03:52
22F→: 開發軟體最經常遇到的就是改變, 最害怕的也是改變.07/13 04:02
23F→: 開發上分成兩個角色: library user & developer. use07/13 04:02
24F→: r 因為只是不需要知道細節, 所以有一份標頭檔和已經07/13 04:02
25F→: 編好的函式庫檔就可以做開發, developer 有任何改動,07/13 04:02
26F→: 如果不是改在標頭檔內, 所以 user 所需要做的最多就07/13 04:02
27F→: 是重新連結而已. 介面/實作分離一方面就是要避免 use07/13 04:02
28F→: r 重複做編譯的動作 (編譯防火牆), 如果函式庫含有商07/13 04:02
29F→: 業機密通常也會這樣做 (看授權) 所以撰碼的時候身分07/13 04:02
30F→: 需要持續切換, 作為 developer 時就要思考怎樣讓 use07/13 04:02
31F→: r 減少編譯次數, 在介面上做最少改動; 作為 user 的07/13 04:02
32F→: 時候思考介面設計是否方便合理.07/13 04:02
33F→: 簡單說如果一個實作萬年不變, 而且沒有需要/可能減少07/13 04:06
34F→: 編譯次數/時間的考量, 就會直接寫在標頭檔裡.07/13 04:06
35F→: 以 ISO 標準教學流程 [P1389R1] 來說這個應該歸在最07/13 05:20
36F→: 後的工具介紹階段裡, 對語言特性更了解後才比較清楚07/13 05:20
37F→: 該怎麼拿捏. 只是為了教學方便很容易跳過這些基礎知07/13 05:20
38F→: 識, 不過關鍵字: ODR 可以先深入學習.07/13 05:20
11F→: 之前 Jason Turner 就有 live stream code review07/09 01:29
12F→: CnC: https://youtu.be/Oee7gje-XRc 不過這種古早的07/09 01:30
13F→: 扣你是可以學習他們的架構設計, 但是其他的就不必了07/09 01:30
14F→: 標準在變文化在變, 除非你想讓人覺得自己食古不化,07/09 01:31
15F→: 不然現今光是 C++ Core Guidelines 就夠你學了, 看不07/09 01:32
16F→: 懂 Modern C++ Style 才比較慘07/09 01:33
5F→: N2176 裡除了 6.9.1/9 還有 Annex J J.1/1 裡有特別07/08 18:47
6F→: 提到: "The layout of the storage for parameters07/08 18:49
7F→: is unspecified" 意思是說編譯器實作有權利選擇如何07/08 18:50
8F→: 存放參數的值, 來達成某種目的, 像是 ABI 相容或優化07/08 18:51
9F→: 等等, 這個情況下編譯器也許會插入轉換的程式碼讓你07/08 18:52
10F→: 取得正確的值 (tmp = zz); 但如果直接拿指標去指向參07/08 18:53
11F→: 數, 看到的記憶體內容不保證和一般的變數相同07/08 18:54
12F→: 但這不是 endianness 的問題, 而是語言設計問題07/08 19:01
13F→: 在 C 裡兩者是一樣的07/06 22:55