Discusses how the use of generic programming in C++ can lead to conflicts with object-oriented design principles. Also demonstrates how a technique known as type erasure can often be used to resolve theseconflicts. An in-depth example is presented: any_it