From b62dc57a921936c113c0bb1662fb19f3a0ce0a3e Mon Sep 17 00:00:00 2001 From: Bartosz Taudul Date: Sat, 23 Sep 2017 01:10:48 +0200 Subject: [PATCH] Disallow vector copying, allow moves. --- server/TracyVector.hpp | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/server/TracyVector.hpp b/server/TracyVector.hpp index 64dbbc55..e9869f63 100755 --- a/server/TracyVector.hpp +++ b/server/TracyVector.hpp @@ -24,12 +24,32 @@ public: { } + Vector( const Vector& ) = delete; + Vector( Vector&& src ) + : m_ptr( src.m_ptr ) + , m_size( src.m_size ) + , m_capacity( src.m_capacity ) + { + src.m_ptr = nullptr; + } + ~Vector() { memUsage.fetch_sub( m_capacity * sizeof( T ), std::memory_order_relaxed ); delete[] m_ptr; } + Vector& operator=( const Vector& ) = delete; + Vector& operator=( Vector&& src ) + { + delete[] m_ptr; + m_ptr = src.m_ptr; + m_size = src.m_size; + m_capacity = src.m_capacity; + src.m_ptr = nullptr; + return *this; + } + bool empty() const { return m_size == 0; } size_t size() const { return m_size; }