Posts

ClassIdioms

Covariant Return Type

/
The Covariant Return Type of a member function allows an overriding member function to return a narrower…
patterns

The Proxy Pattern

/
The Proxy Pattern is probably the most influential design pattern for C++. The Proxy provides a placeholder…
patterns

The Bridge Pattern

/
The Bridge Pattern is a structural pattern. It decouples the interface from the implementation. In C++,…
TimelineCpp20

Barriers and Atomic Smart Pointers in C++20

/
In my last post, I introduced latches in C++20. A latch enables its threads to wait until a counter becomes…
relay race

C++ Core Guidelines: Passing Smart Pointers

/
Passing smart pointers is a critical topic that is seldom addressed. This ends with the C++ core guidelines…
gold 513062 640

C++ Core Guidelines: Rules for Smart Pointers

/
There were a lot of C++ experts who said that smart pointers were the essential feature of C++11. Today,…
sharedPtr

Atomic Smart Pointers

/
C++20 will have atomic smart pointers. To be exact, we will get a std::atomic_shared_ptr and a std::atomic_weak_ptr.…
weakPtr

std::weak_ptr

/
std::unique_ptr models the concept of exclusive ownership, std::shared_ptr the concept of shared ownership.…
enabledShared

Specialities of std::shared_ptr

/
After I draw the big picture of a std::shared_ptr in the last post, I want to present two special aspects…
sharedPtr

std::shared_ptr

/
std::shared_ptr's share the resource. The shared reference counter counts the number of owners. Copying…