|
|
1.1 ! root 1: #include "check.h" ! 2: ! 3: int count = 0 ; ! 4: ! 5: class small ! 6: { public: ! 7: int foo; ! 8: small(){}; ! 9: ~small(){count++ ;}; ! 10: }; ! 11: ! 12: class big ! 13: { public: ! 14: int foo; ! 15: small contained; ! 16: big(){}; ! 17: ~big(){count++;} ; ! 18: }; ! 19: ! 20: template<class contained_type> class para ! 21: { public: ! 22: int foo; ! 23: contained_type contained; ! 24: para(){}; ! 25: ~para(){count++;} ; ! 26: }; ! 27: ! 28: typedef para<small> ct; ! 29: ! 30: template<class contained_type> class para2 ! 31: { public: ! 32: int foo; ! 33: contained_type contained; ! 34: para2(){}; ! 35: ~para2(){count++;} ; ! 36: }; ! 37: ! 38: ! 39: main() ! 40: { ! 41: start_test(__FILE__) ; ! 42: ! 43: { ! 44: small s; ! 45: } ! 46: check(count == 1) ; ! 47: count = 0 ; ! 48: { ! 49: big b; ! 50: } ! 51: check(count == 2) ; ! 52: count = 0 ; ! 53: ! 54: { ! 55: para<small> p; ! 56: } ! 57: check(count == 2); ! 58: count = 0 ; ! 59: ! 60: { ! 61: para2<ct> p2; ! 62: } ! 63: check (count == 3) ; ! 64: ! 65: end_test() ; ! 66: ! 67: };
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.