template struct set { void insert (const T&); template void insert (X, X); }; struct C : public set { void f (const int i) { insert (i); } };