Before continuing with smart pointers, I want to make a quick note on a particular C++ feature: Empty Base Optimization.
It’s a relatively small topic, but quite valuable in metaprogramming - especially when implementing containers with custom allocators or deleters. By applying it, you can often save a few bytes of memory. If you’re interested, you can read more about it here.
