Type erasure by example

We will go through a detailed explanation of what type erasure is and how it is accomplished in C++. But first, let's see what a program that had the explicit type information removed from it looks like.

We start with a very simple example of using a unique pointer, std::unique_ptr:

std::unique_ptr<int> p(new int(0));

This is an owning pointer (see Chapter 3, Memory Ownership)—the entity containing this pointer, such as an object or a functional scope, also controls the lifetime of the integer we allocated, and is responsible for its deletion. The deletion is not explicitly visible in the code and will happen when the p pointer is deleted (for example, when it goes out of scope). The way this deletion will be accomplished ...

Get Hands-On Design Patterns with C++ now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.