In this chapter, we went through various idioms and patterns used in the C++ world. You should now be able to write fluent, idiomatic C++. We've demystified how to perform automatic cleanup. You can now write safer types that properly move, copy, and swap. You learned how to use ADL to your advantage both with compilation times and writing customization points. We discussed how to choose between static and dynamic polymorphism. We also learned how to introduce policies to your types, when to use type erasure, and when not.
What's more, we discussed how to create objects using factories and fluent builders. Moreover, using memory arenas for this is also no longer arcane magic. So is writing state machines using tools such as variants.
We did all that as well as touching on extra topics down the road. Phew! The next stop on our journey will be about building your software and packaging it.