Policy-based design is great: It provides a lot of flexibility to the users of a class. They can use the exact policy for their use. However, it has a big problem: it creates a lot of different and incompatible types. This post explains it in more detail and discusses potential solutions.