template struct S { static int f () { static int i; return ++i; } S () {}; ~S () {}; }; typedef S a; int g () { return a::f(); }