// { dg-do run } template class Set { public: typedef int (*Compare)(const T&, const T&); static Compare cmp1; static int (*cmp2)(const T&, const T&); }; template int gen_cmp(const T& a, const T& b) { if (a typename Set::Compare Set::cmp1 = &gen_cmp; template int (*Set::cmp2)(const T&, const T&) = &gen_cmp; int main() { Set s; }