C++ Modern C++


        現代的C++,比較籠統。最近10多年的東西是否是現代的呢?我認為“時髦”這個詞更准確一些。每個年代,時髦總是標新立異的,總是被年齡大一些的人看不慣的(雖然這些人也曾經“趕過時髦”)。Modern C++就是用最時髦的東西去裝飾您的代碼。但是本質的東西還是沒有變。改革初期,最時髦的服飾是喇叭褲,霹靂舞手套。那時沒有智能手機,時髦的人扛着一台卡帶錄音機招搖過市。我們來分析一下。喇叭褲穿着也就罷了,總要穿衣服出門才文明吧?可是像喬峰一樣帶着音響出場是幾個意思?后來時代發展了,卡帶錄音機逐漸變小,出現便於攜帶式的隨身聽。為了不影響他人,出現了耳機這個配件。之后就是mp3播放器上市了,無線藍牙耳機替代了繞脖子的音頻線。智能手機出現后,mp3不見了蹤影。時尚和技術在變化,不變的是什么? 是人們對文藝和音樂的追求。

       C++98 出現了模板和STL,帶着這些東西上場的年輕人被老程序員側目。std::map<int, std::<string> >::const_iterator ite = m.begin(); 是都是什么做派?世界上沒有什么不能替代的東西,用C也能實現數據結構和算法。這沒有任何問題,很多人一輩子也不習慣聽着音樂到處跑(包括我)。C++11/14時代到來后,右值引用,lamda表達式,函數式編程,auto/decltype,  constexpr, 智能指針... 踴躍的出現,有什么用?如果當初沒有去趕std::map<int, std::<string> >::const_iterator ite = m.begin();的時髦,自然對auto ite = m.begin();沒有任何感覺。(從不用隨身聽的人,會理解mp3的好處嗎?)。如果當初對大對象傳遞過程中,拷貝來拷貝去毫不憐惜效率的損失,自然對右值引用的出現無動於衷。C++就這點好處,思維停留在1950年代,在202z年代也能活的很好。用支持C++17/20的GCC編譯器,編寫純C也毫無問題。穿着中山裝,使用收音機和報紙接聽新聞的人也能過的頗舒適。C++17又出現了constexpr if,fold expression, structured binding...那可好了,從未接觸過enable_if,模板遞歸,tuple的程序員開始對此嗤之以鼻了,這些都是什么鬼?

       說這么多,就一個意思。不隨身聽音樂也就是罷;隨身聽音樂,就從大喇叭錄音機一直跟到mp3和手機。時髦不跟也罷,跟時髦,就會一直跟下去。(時髦,現代)Modern C++不跟也罷,跟就一直跟下去吧。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM