|
@@ -278,7 +278,11 @@ inline Vector<T>::Vector(const Vector<T>& other)
|
|
|
, _size(0)
|
|
, _size(0)
|
|
|
, _data(NULL)
|
|
, _data(NULL)
|
|
|
{
|
|
{
|
|
|
- *this = other;
|
|
|
|
|
|
|
+ const u32 size = vector::size(other);
|
|
|
|
|
+ vector::resize(*this, size);
|
|
|
|
|
+
|
|
|
|
|
+ for (u32 i = 0; i < size; ++i)
|
|
|
|
|
+ new (&_data[i]) T(other._data[i]);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
template <typename T>
|
|
template <typename T>
|
|
@@ -311,7 +315,7 @@ inline const Vector<T>& Vector<T>::operator=(const Vector<T>& other)
|
|
|
vector::resize(*this, size);
|
|
vector::resize(*this, size);
|
|
|
|
|
|
|
|
for (u32 i = 0; i < size; ++i)
|
|
for (u32 i = 0; i < size; ++i)
|
|
|
- _data[i] = other._data[i];
|
|
|
|
|
|
|
+ new (&_data[i]) T(other._data[i]);
|
|
|
|
|
|
|
|
return *this;
|
|
return *this;
|
|
|
}
|
|
}
|