- What is type erasure really?
Type erasure is a programming technique where the program, as written, does not show an explicit dependence on some of the types it uses.
- How is type erasure implemented in C++?
Part of the implementation always involves a polymorphic object and a virtual function call or a dynamic cast. Usually, this is combined with generic programming to construct such polymorphic objects.
- What is the difference between hiding a type behind auto and erasing it?
A program may be written in a way that avoids explicit mention of most types. The types are deduced by template functions and declared as auto or as template-deduced typedef types. However, the actual types of the objects that are hidden by auto still depend on all types the object operates on (such as the deleter type for a pointer). The erased type is not captured by the object type at...