| #include <stdio.h> | |
| 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<int dummy = 0> | |
| struct XT { | |
| static A sss; | |
| }; | |
| template<int dummy> | |
| A XT<dummy>::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(); | |
| } |