diff --git a/3rdparty/mockitopp/detail/stubbing/dynamic_object.hpp b/3rdparty/mockitopp/detail/stubbing/dynamic_object.hpp --- a/3rdparty/mockitopp/detail/stubbing/dynamic_object.hpp +++ b/3rdparty/mockitopp/detail/stubbing/dynamic_object.hpp @@ -132,6 +132,10 @@ void missing_vfunction() { throw missing_implementation_exception(); } + + private: + dynamic_object(const dynamic_object &); + dynamic_object &operator=(const dynamic_object &); }; } // namespace detail } // namespace mockitopp diff --git a/3rdparty/mockitopp/detail/stubbing/dynamic_vfunction.hpp b/3rdparty/mockitopp/detail/stubbing/dynamic_vfunction.hpp --- a/3rdparty/mockitopp/detail/stubbing/dynamic_vfunction.hpp +++ b/3rdparty/mockitopp/detail/stubbing/dynamic_vfunction.hpp @@ -143,6 +143,9 @@ ~matcher_element() { delete matcher; } + matcher_element &operator= (const matcher_element& rhs) const + { matcher_element tmp(rhs); std::swap(*this, tmp); return *this; } + bool operator== (typename tr1::add_reference::type>::type rhs) const { return (*matcher == rhs); } diff --git a/3rdparty/mockitopp/detail/util/pointers.hpp b/3rdparty/mockitopp/detail/util/pointers.hpp --- a/3rdparty/mockitopp/detail/util/pointers.hpp +++ b/3rdparty/mockitopp/detail/util/pointers.hpp @@ -82,8 +82,21 @@ , _count(count) {} + shared_ptr_impl(const shared_ptr_impl &other) + : _raw_ptr(other._raw_ptr) + , _count(other._count) + {} + ~shared_ptr_impl() { D()(_raw_ptr); } + + shared_ptr_impl &operator=(const shared_ptr_impl &other) + { + shared_ptr_impl tmp(other); + std::swap(*this, other); + return *this; + } + }* _ptr_impl; void __decrement()