v1.6.0
First of all, THANK YOU TO EVERYONE FOR YOUR INTEREST IN THIS COURSE. In the last few weeks, the course jumped from 1K to 7.6K stars ✨ 🙏
Credit to @kimsoohwan, @Zitrax, @f9rocket, @saw-lau, @mostafacs, @platypusguy, @raymondmdang, @jesustorresdev, @HaloWang, @66hash, @abzrg, @csukuangfj, @jakeheke75, @amirkhaki, @fabrizio-ottati, @dsardelic, @akobyl for pointing me out several mistakes and typos
Introduction:
- Add a new section for C++ alternatives: Rust, Zig, Why switching to a new language is hard?
- Moved books to the related sections
- Updated and simplified "Who I Am" section
Basic Concepts I:
- Added emacs, helix, lapce, neovim editors
- Added IEEE 128/256-bit floating point formats
- Added
std::print
- Added text version of logical operators
Basic Concepts II:
- Improved unsigned/signed section
- Improved C++ Data Model section
Basic Concepts III:
- Minor improvements to "Declaration/Definition" section
Basic Concepts IV:
- Improved "Source Location Macros" section
- Improved "Avoid Unused Variable Warning" section
Basic Concepts V:
- Minor improvements to Function Attributes
- Better explanation and separation of "Source Location Macros" section
Object-Oriented Programming I:
- Improved "const keyword" section
Templates and Meta-programming II:
- Added "Constructor Template Automatic Deduction (CTAD)" section
Code Conventions:
- Added Marissa Mayer quote
- Added some notes about code verbosity
- Separated "Use fixed-width integer type rule" between Google and Unreal
Ecosystem I:
- Added new memory vulnerability references
- Added "Modern CMake for C++" book
Utilities:
- Added
std::stacktrace
library - Removed
std::byte
Containers, Iterators, Ranges, and Algorithms:
- Moved "Iterator categories" in the introduction for a better overview
Optimizations I:
- Added "Sqrt(N) for memory latency" notes
Optimizations II:
- Better description of vectorization and
=default