Modern C++ Design難しいなぁ…。
#include <iostream> using namespace std; template <class T> class Foo { public: void func() { cout << sizeof(T) << endl; } }; template <class T> class Bar { public: void func() { cout << typeid(T).name() << endl; } }; class Zoo { }; template <template <class> class Policy> class Host : public Policy<Zoo> { public: void call_func() { func(); } }; int main() { Host<Foo> foo; Host<Bar> bar; foo.call_func(); bar.call_func(); }