00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016 #ifndef _MX_MEMORY_H_
00017 #define _MX_MEMORY_H_
00018
00019 #include<cstdio>
00020 #include<cstdlib>
00021 #include<vector>
00022 #include<cstring>
00023
00024
00025 namespace mx
00026 {
00031 class scoped_memory {
00032 public:
00034 scoped_memory() { }
00036 virtual ~scoped_memory();
00037
00042 virtual void *alloc(size_t len);
00049 virtual void *sized_alloc(size_t num, size_t size);
00051 virtual void release();
00052 protected:
00054 std::vector<void *> allocations;
00055 private:
00056 scoped_memory(const scoped_memory &);
00057 scoped_memory &operator=(const scoped_memory &);
00058 };
00059 }
00060
00061
00062
00063
00064
00065
00066
00067
00068
00069
00070
00071
00072
00073
00074
00075 #endif
00076
00077