Re: Fw: [問卦] C++到底難學在哪裡
本來想上班摸魚回的。我C不敢說記得住標準,至少style沒問題,linux kernel也有些提交meson, cmake都很熟悉。所以編譯不是問題。
C++比如說我要return 一個object,要利用RVO要確認幾件事?
首先object的class要是movable 的,所以你要實現個移動構造。
然後讓經驗很老道的人都要編譯看看asm,要不要寫std.move()
然後這個move constructor就是個很夭壽的東西,為啥要用RVO和move constructor呢?就是因為不想用raw pointer,好吧這個class的member多半不簡單。
可能你們有N個class type的member,你要保證自己沒有偷懶,
全部實現好move constructor,不然突然會來一個變copy constructor,
memory用完再釋放用fragments 炸死你。
弄了怎麼多,還不如一個raw pointer直接過去。
忘記講了,如果你要return none value,看看c++導入的union和none vlaue的取代。
當然有人講smart pointer好好用,問題是你把lvalue reference看成什麼了?
要改的value不會用這個塞parameter?
再扯到rvalue reference的move constructor還是copy constructor。
這邊都還沒有到他媽的template,我是用的很開心啊。可是事實並沒有那麼多
類似的class可用寫成個template 或者method變function template。
可是不得不用免得被靠北沒有擴展性。
寫了幾天我覺得glib(gnome)怎麼那麼親切,囉哩八嗦的Spring(Java)怎麼那麼一致。
除非沒有時間限制的task,或者和clang, llvm有關的事情,死也不碰C++。
還有種情況是我故意想用複雜的語法堵人嘴,正常的同事是不想研究C++的,會直接放過。
最近開始學rust希望不要又被雷
--
起初,皇軍進佔滿州, 我沒有反對,因為我要去滿州撈錢。
接著,皇軍發動對支戰爭, 我沒有反對,因為那是支那人自找苦吃。
後來,皇軍發動太平洋戰爭,我沒有反對,因為看鬼畜米英四處奔逃出了一口惡氣。
以後,鬼畜米英來轟炸, 我全力反對,因為我們台灣是無辜的,這是米英的戰爭罪行最後,天皇宣布無條件投降,我沒有反對。因為我們台灣人是戰勝國國民,
戰爭責任與我無關,我要有跟戰勝國一樣的物資配給好賺錢,也不要坐祥瑞回家!
--
所以functional又興起了啊
rust 一個 destructive move 直接解決這篇提到一半以
上的問題
另外還有container template,就算是move constructor對非pointer也是有開銷的, 可是我又想避免pointer包括smart pointer這就沒辦法了。 另外shared pointer的開銷很可觀(因為有lock)
高手求教教
rust預設移動語義應該是好很多,但語法也不能說簡單
預設move然後寫parser超麻煩...
移動構造跟複製構造可以講英文嗎?...
rust最近網路上好多人在說
怎麼感覺你還真的是寫沒幾天就沒碰了
周圍寫的人不多,不過我寫是找了c++頻道一邊寫,一邊review 實際寫的時間大概零零散散加起來有一個月
C++很爛 不過你說的很不到位 不是蘋果比蘋果 歧視鍊出現
是問哪裡難,我就把我用的時候覺得無所適從的地方列出來而已。
※ 編輯: hizuki (192.147.44.15 美國), 03/14/2023 11:01:24你到底有沒有想過一個raw能解為何人家要想的那麼復雜?
就是避免有的人記不住嘛
你前面講說自己多厲害,結果見解跟剛學程式的人差不多啊z
xzd
不好意思,那你拿出你的public commit來比比咯,可能你memory比較多
※ 編輯: hizuki (192.147.44.15 美國), 03/15/2023 10:50:27原PO提交commit的id可以提供瞻仰嗎?
應該可以明白為什麼我在意效能,沒有什麼非常令人需要的東西。 0d746d1022c7f83bc297584cb4d456cae4697cbf Gstreamer 0f74ab59ce8712e7e2bb1e4517033328e626b27c linux kernel
※ 編輯: hizuki (192.147.44.15 美國), 03/15/2023 15:35:52沒有用過pimpl嗎?
用來簡化include速度的吧,或者說用來直接unique ptr transfer?
不確定這邊同時提smart pointer和 l reference 是什麼
意思, 要解決的問題好像不太一樣
後者的話是可以,但是你要訪問一個property就要包包一層
※ 編輯: hizuki (192.147.44.15 美國), 03/16/2023 17:37:13pimpl是用來降低dependency(intro. by data members
or #includes)
連dereference都不喜歡那真的是多說無益了, 寫C吧
42
Re: [問卦] C++到底難學在哪裡: 看到標題我就想問,C++是不是沒那麼適合新手學啊? 我資工大一上程設就C++,那時候用的是螞蟻書 之後不知道是我沒天分,還是教授講太爛, 學期中講到pointer我就聽不懂,直接斷然轉學17
[問卦] Python怎麼那麼難懂啊?variable type 不清楚,幹這數字到底是float還是int? function return type 也沒標記 function argument type 不知道是啥 oop語法有夠難懂 每次看python 的code都好痛苦16
Re: [請益] 什麼程度才能在履歷上說自己會某個語言?有些人會說語言定義、語言features之類的,以我的經驗 C++ 上下天花板非常大,理 由是這個語言太複雜了,通常非面試場合有自信說:"我精通C++" 不是真的大神就是 達克效應驅使。 比方說,C++的metaprogramming,如果你的同事不知道你用的paradigm甚至是你用的 技術是什麼,可能會造成只有你能維護的窘境。 或者是根本沒在追新標準、沒用boost10
Re: [請益] 比物件導向更先進的程式設計思想?這當然是唬爛,聽過愚民教育嗎? 聽過蓄奴嗎? 物件導向就是大公司的陰謀 方便它們做一些黑箱框架,以及騙一些人進來,當它們框架的依賴者 物件導向的語法設計,會讓你很難去挖掘框架後面的東西 用的人只會越來越沒有思想,越來越依賴框架10
Re: [請益] 什麼程度才能在履歷上說自己會某個語言?C++的話小弟我提供的一個指標 看完effective modern C++ 這本涵蓋了C++重要的概念 lambda expression, rvalue reference, template type deduction, copy/move constructor, destructor, async/thread, move symantec, smart pointer,4
Re: [請益] 多型用在哪ㄛ現在ㄉ想法4 沒有多型 只有介面 多型的用例之一 for(auto p_actor : actors) p_actor->act() 對ㄛ來縮 p_actor實際上到底是什麼 並不重要5
Re: [討論] 寫三元判斷式code review被打槍好啦 假設不是反串 我覺得滿有道理的 但有一點其實你說錯了 其實並不是語法進步 之前學 Rust 覺得哇 pattern matching 真是他媽神 好潮喔 後來跑去學 OCaml 我才發現(Rust設計者是OCaml粉 一開始的compiler就是用OCaml寫)3
Re: [閒聊] ChatGPT是語言模型不是搜尋引擎這個敘述也太強烈了吧? StackOverflow 上面不是只有 code template,重要的是有很多的討論和推論。 而且如果有新的library出來,很多人也會在StackOverflow上討論 關於這個議題,我來分享我最近遇到的案例 最近在工作上寫code遇到一個問題是,我發現,2
Re: [問卦] C++到底難學在哪裡其實相比之下,C 反而比較難寫;難寫的原因在於你自己要處理很多東西。舉個簡單的例子 ,今天你要寫一個程式,記錄從另一個程式丟過來的資料。直到收到命令之前是不能存檔 用 C++ 就 vector 爽爽用。用 C 你要考慮設計一個處理資料量不一的結構,然後再考慮一 個不知要暫存多少筆資料的方法。別的不說,光是要確保你的程式不會造成 memory leak 就 很不容易了。如果還要你加上排序這種功能,真的很累。不只寫程式的人累,接手的人更累- 我發了email給info@airlinesettlement.com 說明我目前人在台灣,沒有辦法兌現支票 是否有其他除了支票的方式? 後來接到回信,可以用PAYPAL 以下是他們給我的回信內容: