template class C1 { template struct rebind { typedef C1 other; }; }; template class C2; template<> class C2 { template struct rebind { typedef C2 other; }; }; template class C2: public C1 { template struct rebind { typedef C2 other; }; }; C2 blowup;