Type-Safe Interfaces with Modern C++
Simpliv