Made copy constructors and copy assignment operators private for classes that should be noncopyable.

This commit is contained in:
Takatoshi Kondo 2014-11-23 20:42:38 +09:00
parent 0de0b434b3
commit dab725624e
9 changed files with 53 additions and 5 deletions

View File

@ -194,6 +194,9 @@ private:
static void object_delete(void* obj); static void object_delete(void* obj);
void* allocate_expand(size_t size); void* allocate_expand(size_t size);
private:
zone(const zone&);
zone& operator=(const zone&);
}; };
inline zone::zone(size_t chunk_size) /* throw() */ :m_chunk_size(chunk_size), m_chunk_list(m_chunk_size) inline zone::zone(size_t chunk_size) /* throw() */ :m_chunk_size(chunk_size), m_chunk_list(m_chunk_size)
@ -266,7 +269,10 @@ inline void zone::clear()
inline void zone::swap(zone& o) inline void zone::swap(zone& o)
{ {
std::swap(*this, o); using std::swap;
swap(m_chunk_size, o.m_chunk_size);
swap(m_chunk_list, o.m_chunk_list);
swap(m_finalizer_array, o.m_finalizer_array);
} }
template <typename T> template <typename T>

View File

@ -239,6 +239,9 @@ private:
static void object_delete(void* obj); static void object_delete(void* obj);
void* allocate_expand(size_t size); void* allocate_expand(size_t size);
private:
zone(const zone&);
zone& operator=(const zone&);
}; };
inline zone::zone(size_t chunk_size) /* throw() */ :m_chunk_size(chunk_size), m_chunk_list(m_chunk_size) inline zone::zone(size_t chunk_size) /* throw() */ :m_chunk_size(chunk_size), m_chunk_list(m_chunk_size)
@ -311,7 +314,10 @@ inline void zone::clear()
inline void zone::swap(zone& o) inline void zone::swap(zone& o)
{ {
std::swap(*this, o); using std::swap;
swap(m_chunk_size, o.m_chunk_size);
swap(m_chunk_list, o.m_chunk_list);
swap(m_finalizer_array, o.m_finalizer_array);
} }
template <typename T> template <typename T>

View File

@ -224,11 +224,11 @@ public:
zone(zone&&) = default; zone(zone&&) = default;
zone& operator=(zone&&) = default; zone& operator=(zone&&) = default;
zone(const zone&) = delete;
zone& operator=(const zone&) = delete;
private: private:
void undo_allocate(size_t size); void undo_allocate(size_t size);
zone(const zone&);
zone& operator=(const zone&);
template <typename T> template <typename T>
static void object_destruct(void* obj); static void object_destruct(void* obj);

View File

@ -44,9 +44,14 @@ public:
return m_file; return m_file;
} }
#if defined(MSGPACK_USE_CPP03)
private: private:
fbuffer(const fbuffer&); fbuffer(const fbuffer&);
fbuffer& operator= (const fbuffer&); fbuffer& operator=(const fbuffer&);
#else // defined(MSGPACK_USE_CPP03)
fbuffer(const fbuffer&) = delete;
fbuffer& operator=(const fbuffer&) = delete;
#endif // defined(MSGPACK_USE_CPP03)
private: private:
FILE* m_file; FILE* m_file;

View File

@ -115,7 +115,14 @@ private:
private: private:
Stream& m_stream; Stream& m_stream;
#if defined(MSGPACK_USE_CPP03)
private: private:
packer(const packer&);
packer& operator=(const packer&);
#else // defined(MSGPACK_USE_CPP03)
packer(const packer&) = delete;
packer& operator=(const packer&) = delete;
#endif // defined(MSGPACK_USE_CPP03)
packer(); packer();
}; };

View File

@ -112,8 +112,15 @@ private:
m_alloc = nsize; m_alloc = nsize;
} }
#if defined(MSGPACK_USE_CPP03)
private: private:
sbuffer(const sbuffer&); sbuffer(const sbuffer&);
sbuffer& operator=(const sbuffer&);
#else // defined(MSGPACK_USE_CPP03)
sbuffer(const sbuffer&) = delete;
sbuffer& operator=(const sbuffer&) = delete;
#endif // defined(MSGPACK_USE_CPP03)
private: private:
size_t m_size; size_t m_size;
char* m_data; char* m_data;

View File

@ -971,9 +971,14 @@ private:
std::size_t m_initial_buffer_size; std::size_t m_initial_buffer_size;
detail::context m_ctx; detail::context m_ctx;
#if defined(MSGPACK_USE_CPP03)
private: private:
unpacker(const unpacker&); unpacker(const unpacker&);
unpacker& operator=(const unpacker&); unpacker& operator=(const unpacker&);
#else // defined(MSGPACK_USE_CPP03)
unpacker(const unpacker&) = delete;
unpacker& operator=(const unpacker&) = delete;
#endif // defined(MSGPACK_USE_CPP03)
}; };
#if !defined(MSGPACK_USE_CPP03) #if !defined(MSGPACK_USE_CPP03)

View File

@ -268,8 +268,14 @@ public:
m_tail = m_array; m_tail = m_array;
} }
#if defined(MSGPACK_USE_CPP03)
private: private:
vrefbuffer(const vrefbuffer&); vrefbuffer(const vrefbuffer&);
vrefbuffer& operator=(const vrefbuffer&);
#else // defined(MSGPACK_USE_CPP03)
vrefbuffer(const vrefbuffer&) = delete;
vrefbuffer& operator=(const vrefbuffer&) = delete;
#endif // defined(MSGPACK_USE_CPP03)
private: private:
iovec* m_tail; iovec* m_tail;

View File

@ -149,8 +149,14 @@ private:
return true; return true;
} }
#if defined(MSGPACK_USE_CPP03)
private: private:
zbuffer(const zbuffer&); zbuffer(const zbuffer&);
zbuffer& operator=(const zbuffer&);
#else // defined(MSGPACK_USE_CPP03)
zbuffer(const zbuffer&) = delete;
zbuffer& operator=(const zbuffer&) = delete;
#endif // defined(MSGPACK_USE_CPP03)
private: private:
z_stream m_stream; z_stream m_stream;