diff --git a/include/pocketpy/vector.h b/include/pocketpy/vector.h index e1aeda58..d2839104 100644 --- a/include/pocketpy/vector.h +++ b/include/pocketpy/vector.h @@ -362,6 +362,13 @@ namespace pkpy { return *this; } + ~small_vector() { + std::destroy_n(data(), m_size); + if (!is_small()) { + std::free(m_internal.begin); + } + } + template void emplace_back(Args &&...args) noexcept { if (m_size == m_capacity) { auto new_capacity = m_capacity * 2; @@ -396,5 +403,10 @@ namespace pkpy { (data() + m_size)->~T(); } } + + void clear() { + std::destroy_n(data(), m_size); + m_size = 0; + } }; } // namespace pkpy \ No newline at end of file