Type erasure is a technique that allows the decoupling of the bit representation of implementation from the user.
This permits the user to be resilient against changes in the implementation and/or to operate on different implementations.
The simplest C++ approach to type erasure is through inheritance.
Compiler Explorer link: https://compiler-explorer.com/z/cn35dnKxr