struct V { virtual ~V() {} }; template struct A : virtual V { }; template struct B { virtual void f() { T foo; } }; int main() { B< A > bar; }