iT邦幫忙

鐵人檔案

第 11 屆 iThome 鐵人賽
回列表
Software Development

山姆大叔談 C++:從歷史談起,再給個定義—Modern C++ 解惑 系列

C++ 這個年紀跟山姆差不多的「老」程式語言,於西元二零一一年正式通過,並發佈了讓這個老語言「回春」的新標準-C++11。同年,C++ 標準委員會達成共識,未來將每「三年」通過一次新的規格,持續替這個老語言<del>續命</del>注入新活水。

雖然唸書時曾接觸 C++,但直到當兵時買了侯捷老師的《C++ Primer》譯本,才正式開始 C++ 學習之旅。三生有幸,退伍後進到台灣的小軟體公司也是以 C++ 為主力,至今十餘載,我依然熱愛程式設計。

此系列的焦點是 Modern C++,利用這個機會讓自己重新檢視這個老語言的新功能。若不小心對讀者有幫助,也算是良好副作用 😁。

參賽天數 26 天 | 共 26 篇文章 | 54 人訂閱 訂閱系列文 RSS系列文
DAY 11

DAY 10:Function Object and std::function,卷一

C++ 有一個概念叫 Function Object(函數物件),寬鬆一點的定義是:任何可以被當做函數呼叫的「東西」都是一種 Function Object,或...

DAY 12

DAY 11:Lambda,卷一:讓 STL 更親民的 Lambda 簡介

路上抓十個 C++ 專家問:「C++11 最棒的新功能是什麼?」十有八九會回答:Lambda! 如此有志一同,原因無他。沒有 Lambda 的年代,使用 STL...

DAY 13

DAY 12:Lambda,卷二:Capture Clause

Lambda 是 Modern C++ 的主要功能之一,對於 C++ 程式碼的改善有決定性的影響。想要掌握 Modern C++,把 Lambda 學好、弄熟是...

DAY 14

DAY 13:Lambda,卷三:Capture By-reference

前一篇提到 Lambda Capture by-value。這一篇說明 Capture by-reference——以 &amp; 表示。 同樣分成兩種寫法:...

DAY 15

DAY 14:Lambda,卷四:好東西也要用得恰到好處

這是第四篇,也是最後一篇談 Lambda。Lambda 之所以耐談,是因為好用;Lambda 之所以要多談,是因為容易誤用。開發者(我也在其中)常犯的毛病之一—...

DAY 16

DAY 15:好用的小功能

今天轉換心情,來聊聊幾個常用的小功能。首先是,Range-Based for Loops。 std::vector&lt;int&gt; vi = {1, 2,...

DAY 17

DAY 16:Structured Bindings

Structured Binding 是 C++17 納入的新功能,目前主流的編譯器都支援了這個功能。 以往麻煩的寫法,Structured Binding 搭...

DAY 18

DAY 17:為類別設計的新關鍵字們

今天將焦點放在針對 Class(類別) 設計的新關鍵字。這些關鍵字在「寫出意義明確的程式碼」以及「避免低級錯誤」扮演關鍵要角。 首先,來看看 final。若用於...

DAY 19

DAY 18: 新語法 if and switch with Initialization

碼農們老實說,我們已經習慣了下面的 if 條件式寫法: auto vi = GetIntegers(); if (vi.empty()) // Do A....

DAY 20

DAY 19:關於新手學習 C/C++ 這件事

今天周末,換個話題。最近有一篇文章引起我的「注意」,是讀了「眼神死」的那種注意。讀完之後,心生一語——鞭數十,驅之別院。 文章作者是一名學生,該文「看起來」是第...

大山姆的機機車車的收藏
大山姆的機機車車的追蹤
大山姆的機機車車的Like
大山姆的機機車車的紀錄