Whenever you're ready, walk me through how you'd approach this.
Explain the trade-offs between template metaprogramming and inheritance in C++.