In this recipe, we will learn what the type erasure pattern is in C++, and how we can leverage it to generically erase type information without sacrificing type-safety or requiring our types to inherit pure virtual base classes. This recipe is important as the type erasure pattern is used heavily in the C++ Standard Library and provides a simple way to encapsulate data types that do not share anything in common, other than providing a similar set of APIs, while still supporting things such as containers.
Learning the C++ type eraser pattern
Getting ready
Before beginning, please ensure that all of the technical requirements are met, including installing Ubuntu 18.04 or higher and running the following in a Terminal window...