fork(1) download
  1. #include <iostream>
  2. using namespace std;
  3.  
  4. int g_tab = 1;
  5. struct X {
  6. int tab;
  7. const char* name;
  8. X(const char* name) : name(name), tab(g_tab++) {
  9. cout << string(tab, '\t') << name << " : ctor" << endl;
  10. }
  11. ~X() {
  12. cout << string(tab, '\t') << name << " : dtor" << endl; }
  13. };
  14.  
  15. X g1("g1");
  16. thread_local X t1("t1");
  17. thread_local X t2("t2");
  18. X g2("g2");
  19.  
  20. int main() {
  21. cout << "start!" << endl;
  22. static X s1("s1");
  23. cout << "test " << t1.name << endl;
  24. static X s2("s2");
  25. cout << "finish!" << endl;
  26. }
  27.  
Success #stdin #stdout 0s 16064KB
stdin
Standard input is empty
stdout
	g1 : ctor
		g2 : ctor
start!
			s1 : ctor
				t1 : ctor
					t2 : ctor
test t1
						s2 : ctor
finish!
					t2 : dtor
				t1 : dtor
						s2 : dtor
			s1 : dtor
		g2 : dtor
	g1 : dtor