diff options
author | tradke <tradke@21a6bef8-4479-4f54-8f8d-0db94a2919ef> | 2000-09-13 13:49:13 +0000 |
---|---|---|
committer | tradke <tradke@21a6bef8-4479-4f54-8f8d-0db94a2919ef> | 2000-09-13 13:49:13 +0000 |
commit | 8fe367ecf2cbda79960a68a052fdb84916427c0e (patch) | |
tree | 45c017765ab7f0eb6caf97540fc76ffd3bffba59 /src/testallocation.cc | |
parent | c490022d592551af7c29bc960cbbc09daf45972d (diff) |
Importing latest stuff from development repository
git-svn-id: http://svn.cactuscode.org/arrangements/CactusExternal/FlexIO/trunk@2 21a6bef8-4479-4f54-8f8d-0db94a2919ef
Diffstat (limited to 'src/testallocation.cc')
-rw-r--r-- | src/testallocation.cc | 82 |
1 files changed, 82 insertions, 0 deletions
diff --git a/src/testallocation.cc b/src/testallocation.cc new file mode 100644 index 0000000..75bc48c --- /dev/null +++ b/src/testallocation.cc @@ -0,0 +1,82 @@ +#include <stdio.h> +#include <stdlib.h> +#include <string.h> + +#include "FlexArrayTmpl.H" + +struct InnerContainer { + int num; + + InnerContainer(InnerContainer &src){ + this->num=src.num; + } + InnerContainer &operator=(InnerContainer &src){ + if(this==&src) return src; + this->num=src.num; + return *this; + } + InnerContainer(){ + printf("\tNew InnerContainer %lu\n",(unsigned long)this); + num=-1; /* uninitialized */ + } + ~InnerContainer(){ + printf("\tInnerContainer[%lu] destruct %d\n",(unsigned long)this,num); + } +}; + +struct OuterContainer { + int num; + FlexArray<InnerContainer> inner; + OuterContainer(OuterContainer &src){ + this->num=src.num; + this->inner=src.inner; + } + OuterContainer &operator=(OuterContainer &src){ + if(this==&src) return src; + this->num=src.num; + this->inner=src.inner; + return *this; + } + OuterContainer(){ + printf("New OuterContainer %lu\n",(unsigned long)this); + num=-1; + } + ~OuterContainer(){ + printf("OuterContainer[%lu] destruct %d innersize=%u\n", + (unsigned long)this,num,inner.getSize()); + } +}; + +struct Container { + FlexArray<OuterContainer> outer; + + Container(int sz){ + int i,j; + outer.setSize(sz); + for(i=0;i<sz;i++){ + OuterContainer o; + printf("***Outer create [%u]\n",i); + o.num=i; + o.inner.setSize(sz); + for(j=0;j<sz;j++){ + printf("\t***Inner create [%u]\n",j); + (o.inner[j]).num=j; + } + outer[i]=o; + } + } + + ~Container(){ + printf("Container Destructor outersize=%u\n",outer.getSize()); + } +}; + +void main(int argc,char *argv[]){ + Container *c; + puts("new container"); + c = new Container(3); + puts("CREATED--------(now destroy)"); + delete c; + puts("DONE"); +} + |