lib_min.cpp
1 #include <stdio.h> 2 3 static const struct XXX { 4 XXX() { puts("XXX"); } 5 } s_sss; 6 7 struct A { 8 int aaa; 9 A() 10 : aaa(123) 11 { 12 puts("A cstr"); 13 } 14 ~A() 15 { 16 puts("A dstr"); 17 } 18 void put() const 19 { 20 printf("aaa=%d\n", aaa); 21 } 22 }; 23 24 template<int dummy = 0> 25 struct XT { 26 static A sss; 27 }; 28 29 template<int dummy> 30 A XT<dummy>::sss; 31 32 typedef XT<0> X; 33 34 static struct Init { 35 Init() 36 { 37 puts("Init"); 38 X::sss.put(); 39 } 40 } s_init; 41 42 int f() { puts("f"); return 4; } 43 44 static const int r = f(); 45 46 int main() 47 { 48 puts("main"); 49 printf("r=%d\n", r); 50 X::sss.put(); 51 }