17cpp, 一起C++
My list of c++ system programming notes
In mandarin, 1(yi)7(qi) sounds similiar to together, lets do c++ together!!
此系列文章跟 17 公司沒有任何關係,單純紀錄學習 C++17 XD
- 我的背景
- 曾經維護過有點古老,基於 ACE framework + MFC 的 C++ 網路程式。(那時候真的不知道自己在幹麻)
- 學了一點 C 語言(從 jserv 的線上/下課程),了解基礎的 Linux 系統及網路管理。
- 讀過 CSAPP 3e,大概知道 C 語言與 X86_64, system programming 的距離。
- 預期目標
- 了解 C++17 的關鍵字,以及稱不上現代/modern 但是符合這個時代的 C++ 開發工具、慣例。
- 主要目標是讓自己成為更好的 Linux system programmer, 並幫助未來失憶的自己、或是其他人。
目錄
Basics
- C++ 是在哈囉 with conan, cmake, catch2
- Declaration, Definition, headers, implementations
- Statement expression, if, for, switch, try/catch
- integer, floating number, built-in array
- API, header, implementation
- const, static, explicit function, &&?
- different ways of casting
- const correctness, C
物件,不是買房子的那個物件。
- class, struct, some patterns
- RAII, unique/shared/weak_ptr, std::move, ownership?
- Explicit implicit
- ways of initialization
- virtual
- auto
- noexcept
template
物件道
- singleton
- forward declartion
- preprocessor directives
演算法
- trees(3 orders) + RAII + smart_ptr
- stack/queue
- graph
好用工具
管理/CI
C++ 學習資源 / 參考資料
C++
- A tour of C++ 2e
- Hands-on system programming with C++
-
system programming
Data structure / algorithm