diff options
author | KUDr <kudr@openttd.org> | 2006-05-27 16:12:16 +0000 |
---|---|---|
committer | KUDr <kudr@openttd.org> | 2006-05-27 16:12:16 +0000 |
commit | 5e73dce0e71791b87e5b096a890578eefcc26639 (patch) | |
tree | e4580db6e03032a997fce1392929b7190dc3b03d /yapf/unittest/test_autocopyptr.h | |
parent | 3d01010440440cfbffd1e5d3b0cf1f23f0503a76 (diff) | |
download | openttd-5e73dce0e71791b87e5b096a890578eefcc26639.tar.xz |
(svn r4987) Feature: Merged YAPF into trunk. Thanks to devs for continuous support and users for testing.
Diffstat (limited to 'yapf/unittest/test_autocopyptr.h')
-rw-r--r-- | yapf/unittest/test_autocopyptr.h | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/yapf/unittest/test_autocopyptr.h b/yapf/unittest/test_autocopyptr.h new file mode 100644 index 000000000..a08d84a59 --- /dev/null +++ b/yapf/unittest/test_autocopyptr.h @@ -0,0 +1,43 @@ +/* $Id$ */ + +struct CData +{ + int val; + + FORCEINLINE CData() : val(0) {NumInstances()++; /*DBG("DCata::ctor()\n");*/} + FORCEINLINE CData(const CData& src) : val(src.val) {NumInstances()++; /*DBG("DCata::ctor(%d)\n", val);*/} + FORCEINLINE ~CData() {NumInstances()--; /*DBG("DCata::dtor(%d)\n", val);*/} + + FORCEINLINE bool operator < (const CData& other) const {return (val < other.val);} + + FORCEINLINE static int& NumInstances() { static int num_instances = 0; return num_instances; }; + +}; + +typedef CAutoCopyPtrT<CData> PData; + +static int TestAutoCopyPtr(bool silent) +{ + int res = 0; + { + PData p1, p3; + p1->val = 4; + PData p2; p2 = p1; + p2->val = 6; + DBG("\n%d, %d", p1->val, p2->val); + CHECK_INT(0, p1->val, 4); + CHECK_INT(1, p2->val, 6); + + p2 = p1; + p3 = p1; + p2->val = 7; + DBG("\n%d, %d", p1->val, p2->val); + CHECK_INT(2, p3->val, 4); + CHECK_INT(3, p2->val, 7); + + CHECK_INT(4, CData::NumInstances(), 3); + } + CHECK_INT(5, CData::NumInstances(), 0); + return res; +} + |