changed all std::destroy
This commit is contained in:
parent
bb335bd9c3
commit
df1f8a82ed
|
|
@ -108,7 +108,7 @@ namespace cc {
|
||||||
[[nodiscard]] constexpr size_type capacity() const noexcept { return _len; }
|
[[nodiscard]] constexpr size_type capacity() const noexcept { return _len; }
|
||||||
[[nodiscard]] constexpr size_type size() const noexcept { return _size; }
|
[[nodiscard]] constexpr size_type size() const noexcept { return _size; }
|
||||||
|
|
||||||
constexpr void clear() { _erase_no_move(std::begin(_arr), std::end(_arr)); }
|
constexpr void clear() { std::fill(begin(), end(), T()); }
|
||||||
|
|
||||||
constexpr iterator insert(const_iterator pos, const T& value);
|
constexpr iterator insert(const_iterator pos, const T& value);
|
||||||
constexpr iterator insert(const_iterator pos, T&& value);
|
constexpr iterator insert(const_iterator pos, T&& value);
|
||||||
|
|
@ -134,9 +134,6 @@ namespace cc {
|
||||||
template<std::size_t N2>
|
template<std::size_t N2>
|
||||||
constexpr void swap(const_vector<T, N2>& other);
|
constexpr void swap(const_vector<T, N2>& other);
|
||||||
|
|
||||||
protected:
|
|
||||||
constexpr inline void _erase_no_move(const_iterator first, const_iterator last) { std::destroy(first, last); }
|
|
||||||
|
|
||||||
#ifdef UNIT_TEST
|
#ifdef UNIT_TEST
|
||||||
friend test_const_vector;
|
friend test_const_vector;
|
||||||
#endif
|
#endif
|
||||||
|
|
@ -324,8 +321,7 @@ namespace cc {
|
||||||
auto distance = std::distance(first, last);
|
auto distance = std::distance(first, last);
|
||||||
if (distance > N) throw std::invalid_argument("Iterator distance in assign surpasses size" + std::to_string(distance) + ">=" + std::to_string(N));
|
if (distance > N) throw std::invalid_argument("Iterator distance in assign surpasses size" + std::to_string(distance) + ">=" + std::to_string(N));
|
||||||
_size = distance;
|
_size = distance;
|
||||||
std::destroy(_arr, _arr + _size);
|
std::copy(first, last, begin());
|
||||||
std::copy(first, last, _arr);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
template<typename T, std::size_t N>
|
template<typename T, std::size_t N>
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue