fork(4) download
  1. #include <cstdio>
  2.  
  3. struct test {
  4.  
  5. test() : _a{} { }
  6.  
  7. int getA() { return _a; }
  8. int setA(int a) { return _a = a; }
  9.  
  10. int _a;
  11. };
  12.  
  13. template<class T>
  14. struct init {
  15.  
  16. init() {
  17. //init objects
  18. t1.setA( 10 );
  19. t2.setA( 10 );
  20. }
  21.  
  22. static test t1;
  23. static test t2;
  24. };
  25.  
  26. //declare static objects
  27. template<class T> test init<T>::t1;
  28. template<class T> test init<T>::t2;
  29.  
  30. //test instantiation
  31. template test init<void>::t2;
  32.  
  33. //init t1 and t2
  34. init<void> I;
  35.  
  36. int main() {
  37.  
  38.  
  39. printf( "t1.A = %d\n", I.t1.getA() );
  40. printf( "t2.A = %d\n", I.t2.getA() );
  41.  
  42. return 0;
  43. }
  44.  
Success #stdin #stdout 0s 3468KB
stdin
Standard input is empty
stdout
t1.A = 0
t2.A = 10