In this chapter, we looked at how to create our own allocators, and covered the intricate details of the C++ allocator concept. Topics included the difference between equal and unequal allocators, how container propagation is handled, rebinding, and potential issues with stateful allocators. Finally, we concluded with two different examples. The first example demonstrated how to create a simple, cache-aligned allocator that is stateless, while the second provided a functional example of a stateful object allocator that maintains a free pool for fast allocations.
In the next chapter, we will use several examples to demonstrate how to program POSIX sockets (that is, network programming) using C++.