CRTP is typically used to implement static polymorphism. Unlike dynamic polymorphism, static polymorphism happens at compile time and does not require an expensive run-time pointer indirection. C++98 The following program crtp.cpp shows an idiomatic C++98-based implementation of CRTP. // crtp.cpp #include <iostream> template <typename Derived> struct Base{ void interface(){ // (2) static_cast<Deri