From cc1715ae98b43e047e2d073647265d0216591830 Mon Sep 17 00:00:00 2001 From: Bartosz Taudul Date: Thu, 19 Oct 2017 23:26:02 +0200 Subject: [PATCH] Implement Vector::insert( it, begin, end ). --- server/TracyVector.hpp | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/server/TracyVector.hpp b/server/TracyVector.hpp index 7a8745be..6cbc64d6 100644 --- a/server/TracyVector.hpp +++ b/server/TracyVector.hpp @@ -103,6 +103,17 @@ public: return m_ptr + dist; } + void insert( T* it, T* begin, T* end ) + { + assert( it >= m_ptr && it <= m_ptr + m_size ); + const auto sz = end - begin; + const auto dist = it - m_ptr; + while( m_size + sz > m_capacity ) AllocMore(); + if( dist != m_size ) memmove( m_ptr + dist + sz, m_ptr + dist, ( m_size - dist ) * sizeof( T ) ); + m_size += sz; + memcpy( m_ptr + dist, begin, sz * sizeof( T ) ); + } + T* erase( T* begin, T* end ) { assert( begin >= m_ptr && begin <= m_ptr + m_size );