diff options
| -rw-r--r-- | libs/kstd/include/kstd/vector | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/libs/kstd/include/kstd/vector b/libs/kstd/include/kstd/vector index a49572b..b2cce0b 100644 --- a/libs/kstd/include/kstd/vector +++ b/libs/kstd/include/kstd/vector @@ -50,7 +50,7 @@ namespace kstd using const_reverse_iterator = std::reverse_iterator<const_iterator>; //! Construct a new, empty vector. - vector() noexcept(std::is_nothrow_default_constructible_v<allocator_type>) + constexpr vector() noexcept(std::is_nothrow_default_constructible_v<allocator_type>) : vector(allocator_type{}) {} @@ -697,10 +697,13 @@ namespace kstd //! Release the memory of this vector. constexpr auto deallocate() { - std::allocator_traits<allocator_type>::deallocate(m_allocator, m_data, m_capacity); - m_capacity = 0; - m_size = 0; - m_data = nullptr; + if (m_data) + { + std::allocator_traits<allocator_type>::deallocate(m_allocator, m_data, m_capacity); + m_capacity = 0; + m_size = 0; + m_data = nullptr; + } } //! Destroy a number of elements in this vector. |
