C++ 這個年紀跟山姆差不多的「老」程式語言,於西元二零一一年正式通過,並發佈了讓這個老語言「回春」的新標準-C++11。同年,C++ 標準委員會達成共識,未來將每「三年」通過一次新的規格,持續替這個老語言<del>續命</del>注入新活水。
雖然唸書時曾接觸 C++,但直到當兵時買了侯捷老師的《C++ Primer》譯本,才正式開始 C++ 學習之旅。三生有幸,退伍後進到台灣的小軟體公司也是以 C++ 為主力,至今十餘載,我依然熱愛程式設計。
此系列的焦點是 Modern C++,利用這個機會讓自己重新檢視這個老語言的新功能。若不小心對讀者有幫助,也算是良好副作用 😁。
第一篇,我想先從 C++ 這個「老」程式語言的歷史談起。了解語言的歷史是為了理解其發展脈絡,並對其未來的有所掌握。 喜歡一個東西,你會想了解她的一切。懂了程式語...
上一篇簡單介紹 C++ 前半段歷史,我沒有參與,接下來談下半段。我是在 2000 年左右認真學習 C++,當時的版本是 C++98,那個時期,C++ 已經被廣泛...
這一篇要談的是程式語言界,人人聞之喪膽的「指標」以及「記憶體管理」,先抓出常見的問題,然後在之後的文章說明如何利用 Modern C++ 來減輕痛苦。開始前,我...
眾所周知,C++ 的特色之一是難搞的「指標(Pointer)」。指標常被用做「記憶體管理」,也被用來實作「繼承體系」,許多 C++ 的設計手法必須透過操作指標方...
前一篇講 std::unique_ptr<T> 的基礎應用,這篇談稍微進階一點的用法。進入主題之前,照慣例要岔一下題。 「Garbage Colle...
雖然花了兩篇介紹 std::unique_ptr<T>,但其實還沒把全部的好處以及可用的場景交代清楚,山姆大叔未來還有其他規劃,這篇的主角改由 st...
本篇的「岔題」在開頭。撰寫鐵人賽系列文章時,我的目標不是完整介紹 Modern C++ 的每一個方面,而是把基本功能與用法,透過簡單的範例,做個粗淺的介紹。C+...
當岔題成了習慣,不岔就是例外。本篇的「岔題」是:螢幕水平空間的重要性。古人的螢幕,水平可用的字元數約 80 個,據說跟 IBM 有關係。有了那樣的歷史因素,80...
C++11 引入的 decltype 是一個容易被忽略的重要組件,在撰寫 Template 時,decltype 能起許多作用。這一篇說明 decltype 的...
上上一篇稍微聊了 auto 的「基本面」,僅說明其對程式碼語法的影響,這一篇要講 auto 的「語義」。首先,再複習一次 auto 的定義: For vari...