純 C++20 精通:概念、範圍、協程與模組

深入剖析了 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 轉久一點或回報錯誤而無法連上,請稍等刷新或重新點選就會出現

報名參加課程

Sponsored by Udemy


也許你會有興趣

不受 FB 演算法影響,歡迎透過 e-mail 訂閱網站更新

發表迴響

這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料

由 WordPress.com 建置.

Up ↑

探索更多來自 Soft & Share 的內容

立即訂閱即可持續閱讀,還能取得所有封存文章。

Continue reading