| 1109 | |
| 1110 | template <typename T, typename TAlloc = AllocatorCLib > |
| 1111 | class Array : public ArrayImpl<T, TAlloc, std::is_pod<T>::value> |
| 1112 | { |
| 1113 | public: |
| 1114 | typedef ArrayImpl<T, TAlloc, std::is_pod<T>::value> _ArrayImpl; |
| 1115 | |
| 1116 | using ArrayImpl<T, TAlloc, std::is_pod<T>::value>::ArrayImpl; |
| 1117 | using _ArrayImpl::operator=; |
| 1118 | using _ArrayImpl::operator==; |
| 1119 | using _ArrayImpl::operator!=; |
| 1120 | |
| 1121 | Array() : _ArrayImpl() |
| 1122 | { |
| 1123 | |
| 1124 | } |
| 1125 | |
| 1126 | Array(const Array& val) |
| 1127 | { |
| 1128 | this->mVals = NULL; |
| 1129 | this->mSize = 0; |
| 1130 | this->mAllocSize = 0; |
| 1131 | |
| 1132 | *this = val; |
| 1133 | } |
| 1134 | |
| 1135 | Array(Array&& val) : _ArrayImpl(std::move(val)) |
| 1136 | { |
| 1137 | |
| 1138 | } |
| 1139 | |
| 1140 | _ArrayImpl& operator=(const Array& val) |
| 1141 | { |
| 1142 | return _ArrayImpl::operator=(val); |
| 1143 | } |
| 1144 | |
| 1145 | _ArrayImpl& operator=(Array&& val) |
| 1146 | { |
| 1147 | return _ArrayImpl::operator=(val); |
| 1148 | } |
| 1149 | }; |
| 1150 | |
| 1151 | template <typename T> |
| 1152 | class OwnedArray : public Array<T*> |
no outgoing calls
no test coverage detected