Memory Management in Depth
Prerequisites: Design patterns in C++
Beyond new/delete and smart pointers, C++ exposes finer control
when it's genuinely needed. Placement new constructs an object
at a specific, already-allocated address, skipping the allocation
step:
#include <new>
alignas(int) char buffer[sizeof(int)];
int *p = new (buffer) int(42); // construct AT buffer's address
p->~int(); // must destroy manually — no delete
This is a specialized tool — used inside custom allocators, memory
pools, and some embedded contexts — not something everyday C++ code
reaches for. For the overwhelming majority of code, std::vector,
std::make_unique, and the STL containers already covered are the
right level of abstraction.