00001
00002
00008 #if !defined(__ads_utility_ObjectAndBlankSpace_h__)
00009 #define __ads_utility_ObjectAndBlankSpace_h__
00010
00011 #include "../defs.h"
00012
00013 BEGIN_NAMESPACE_ADS
00014
00016 template<typename _Object, int _BlankSpaceSize = 64>
00017 class ObjectAndBlankSpace : public _Object {
00018
00019
00020
00021
00022 public:
00023
00025 typedef _Object Base;
00026
00027
00028
00029
00030
00031 private:
00032
00033
00034 char _blankSpace[_BlankSpaceSize];
00035
00036 public:
00037
00038
00040
00041
00043 ObjectAndBlankSpace() :
00044 Base()
00045 {}
00046
00048 ObjectAndBlankSpace(const ObjectAndBlankSpace& other) :
00049 Base(other)
00050 {}
00051
00053 ObjectAndBlankSpace&
00054 operator=(const ObjectAndBlankSpace& other) {
00055 if (this != &other) {
00056 Base::operator=(other);
00057 }
00058 return *this;
00059 }
00060
00062 ObjectAndBlankSpace(const Base& object) :
00063 Base(object)
00064 {}
00065
00067 ~ObjectAndBlankSpace()
00068 {}
00069
00071 };
00072
00073
00074
00075
00076
00077 #if 0
00079 template<typename _Object, int _BlankSpaceSize = 64>
00080 class ObjectAndBlankSpace {
00081
00082
00083
00084
00085 public:
00086
00088 typedef _Object Object;
00089
00090
00091
00092
00093
00094 private:
00095
00096
00097 Object _object;
00098
00099 char _blankSpace[_BlankSpaceSize];
00100
00101 public:
00102
00103
00105
00106
00108 ObjectAndBlankSpace() :
00109 _object()
00110 {}
00111
00113 ObjectAndBlankSpace(const ObjectAndBlankSpace& other) :
00114 _object(other._object)
00115 {}
00116
00118 ObjectAndBlankSpace&
00119 operator=(const ObjectAndBlankSpace& other) {
00120 if (this != &other) {
00121 _object = other._object;
00122 }
00123 return *this;
00124 }
00125
00127 ObjectAndBlankSpace(const Object& object) :
00128 _object(object)
00129 {}
00130
00132 ~ObjectAndBlankSpace()
00133 {}
00134
00136
00138
00139
00140 operator const Object&() const {
00141 return _object;
00142 }
00143
00144 operator Object&() {
00145 return _object;
00146 }
00147
00149 };
00150 #endif
00151
00152 END_NAMESPACE_ADS
00153
00154 #endif