In this chapter, we are going to cover one of the simplest classic C++ object-oriented patterns—the singleton. It is also one of the most misused ones. With its apparent simplicity comes an unusual danger—everyone likes to implement their own singleton, and these implementations often have subtle bugs.
The following topics will be covered in this chapter:
- What is the singleton pattern?
- When should the singleton pattern be used?
- How can singletons be implemented in C++?
- What are the downsides and trade-offs of different implementations of the singleton?