深入剖析了 C++20 語言和 library (程式庫) 特性,適合現代 C++ 開發人員閱讀。
從這 12.5 小時的課程,你會學到
- 了解 C++20 語言標準的新特性
- 將現有 C++ 程式碼庫( codebas )遷移到 C++20
- 使用協程編寫並發程式碼
- 使用模組而非頭檔( headers )實現軟體模組化
- 使用 ranges library 簡化容器和演算法的操作
- 使用概念對演算法和類別施加約束
要求
- 對 C++11 有基本的了解
課程說明
《純粹的 C++20 精通》是一門全面深入、以標準為中心的 C++20 語言和標準 library 課程。
與大多數將舊版 C++ 標準與 C++20 簡要概述相結合的課程不同,本課程完全專注於 C++20,涵蓋核心語言特性、新的 library utilities (程式庫實用程式)、並發原語以及該標準中引入的程式模型。
本課程假定學員已具備一定的現代 C++(C++11/14/17)知識。
本課程不會重複語言基礎、物件導向程式設計基礎或 C++20 之前的相關內容。
C++20 核心語言特性
您將學習所有主要的 C++20 語言新增功能,包括:
- consteval 和 constinit
- 指定初始化器
- Lambda 表達式的改進,包括在未求值上下文( contexts )中的使用
- 現代枚舉增強功能
- 三向比較運算子 (<=>) 和預設比較
本課程將從設計意圖、正確用法和實際應用等方面解釋這些特性。
模組-一種新的編譯和重複使用模型
C++20 引入了模組,從根本上改變了 C++ 程式碼的結構和重複使用方式。
本課程涵蓋以下內容:
- 引入模組的原因
- 模組與基於頭檔的架構有何不同
- 如何定義、匯出和匯入模組
- 建構時、依賴關係和架構方面的影響
- 實際限制和當前工具的現狀
範圍 – 演算法的重新設計
C++20 範圍並非只是語法糖( syntactic sugar )。
您將深入了解範圍模型,包括:
- 視圖和惰性求值
- 範圍適配器和組合
- 消除迭代器樣板程式碼(begin() / end())
- 編寫更安全、更具表現力的演算法管道
- 性能和正確性考量
概念-正確使用約束
概念引入了一種簡潔、富有表現力的方式來約束模板。
您將學習:
- 為什麼概念可以取代許多 SFINAE 模式
- 概念與 enable_if 的區別
- 編寫有意義的約束
- 改進編譯時診斷
- 設計健壯的通用介面
協程( Coroutines )-可恢復函數與協作並發
C++20 協程引入了一個基於可掛起和可恢復函數的全新執行模型。
本課程將講解:
- 協程機制與執行流程
- Promise 類型、可等待物件和掛起點
- 協程如何實現非同步和協作式並發
- 協程與執行緒和執行器之間的關係
- 協程的適用場景-以及不適用場景
C++20 並發(concurrency) 與同步( synchronization )工具
除了語言特性之外,本課程還將深入講解 C++20 新增的並發功能,包括:
- std::jthread 和協作式取消
- 停止標記和結構化執行緒生命週期管理
- C++20 中引入或增強的現代同步原語,例如閂鎖、屏障和信號量。
- 新的庫設計支援更安全、更具表現力的並發模式。
本節重點介紹添加這些實用程式的原因、它們如何提高正確性以及它們如何改變現代 C++ 並發設計。
新增和更新的 C++20 library utilities( 程式庫實用程式 )
您還將了解一些重要的 C++20 標準 library 新增功能,例如:
- 格式化工具(std::format)
- 新增實用工具類型和輔助類,例如 std::osyncstream、std::source_location、std::span 等。
- 庫的變更,以完善範圍、概念和協程。
- 實際使用模式和限制。
其他課程通常會跳過這些主題或簡要提及 – 而在這裡,它們被視為 C++20 的一流特性。
目標受眾
- 想學習 C++20 的 C++ 開發人員
- 想將其程式碼遷移到 C++20 的 C++ 開發人員
講師簡介
Umar Lone Poash Technologies 的培訓師、開發人員兼創辦人
一位土木工程師,最終在軟體開發領域找到了自己的使命。他從未從事過土木工程,而是抓住機會,在二十年前開始使用 C++ 和 Visual C++ 進行開發。他曾利用空閒時間教授這些技術,並樂在其中,最後完全轉型成為培訓師。目前,他為軟體公司的軟體專業人員提供各種技術的培訓,例如 Modern C++、Advanced C++、STL、設計模式、Android、Unity、Linux 等。他對教學充滿熱情,在超過二十年的教學生涯中,已培訓過超過 10 萬名軟體專業人員。他也是一位狂熱的遊戲玩家,目前正在嘗試使用 Unity 和 Unreal 進行遊戲開發。他開發過一些 Android 遊戲和應用程序,其中一款是關於設計模式的。
他最喜歡的技術除了 C++ 之外,就是 Modern C++ 了。
字幕:英文
- 想要了解如何將英文字幕自動翻譯成中文? 請參考這篇 How-To
- Udemy 永久擁有課程 課程特價中 約 NT350 (點擊連結看更多)
- ✨年訂閱每月 NT350 🌈 悠遊 Udemy 的 26000+ 門課,最大化學習 ( 原價 NT635/月 )
- Udemy 現在越來越多課程有中文字幕,請參考 Soft & Share 中文線上課程
- 手機上點選優惠連結看到的價格比電腦上看到的貴
- $代表當地貨幣, 如在台灣為 NT
- 點選”報名參加課程”有可能因瀏覽器 cookies 轉久一點或回報錯誤而無法連上,請稍等刷新或重新點選就會出現
報名參加課程

發表迴響