#include static const struct XXX { XXX() { puts("XXX"); } } s_sss; struct A { int aaa; A() : aaa(123) { puts("A cstr"); } ~A() { puts("A dstr"); } void put() const { printf("aaa=%d\n", aaa); } }; template struct XT { static A sss; }; template A XT::sss; typedef XT<0> X; static struct Init { Init() { puts("Init"); X::sss.put(); } } s_init; int f() { puts("f"); return 4; } static const int r = f(); int main() { puts("main"); printf("r=%d\n", r); X::sss.put(); }