This repo begins with my personal post/article/blog collection.
I have learned cpp for years , and it's still comprehensive and complicate to me .
- cppreference: every cpp learner should known this website.
- C++ programmer's guide to undefined behavior
- When an empty destructor is required
- C++20 Concepts applied - safe bitmasks using scoped enums
- Aggregates: C++17 vs C++20
- C++ Initialization
- Make your programs run faster by better using the data cache
- Latency-Sensitive Applications and the Memory Subsystem
-
Finite State Machine with std::variant
-
How to Make SFINAE Pretty
- Modern C++ In-Depth
- Dealing with Mutation
- Inside STL
- The different types of shared pointer control blocks
- The pair and the compressed pair
- The vector
- The string
- The lists
- The deque, design
- The deque, implementation
- The array
- The map, set, multimap, and multiset
- The unordered_map, unordered_set, unordered_multimap, and unordered_multiset
- Smart pointers
- The
shared_ptr
constructor vsmake_shared
- The
shared_ptr
constructor andenable_shared_from_this
- The different types of shared pointer control blocks
- An informal comparison of the three major implementations of
std::string
- Adding state to the update notification pattern
- On writing loops in PPL and continuation-passing style
- The move constructor that you have to declare, even though you don’t want anyone to actually call it
- Why doesn’t my code compile when I change a
shared_ptr<T>(p)
to an equivalentmake_shared<T>(p)
? - On harmful overuse of
std::move
- More on harmful overuse of
std::move
- Why can’t I find the injected name of a templated class’s templated base class?