qmake: restore nothrow move special members
The user-defined copy assignment, copy constructor and dtor inhibit the move special member functions. Implement them manually. Change-Id: I0d38d7cf6c9611e13b5b081d734d01d6fe4d5276 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com> Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
This commit is contained in:
parent
13bcdc0f50
commit
9c63ad562b
@ -364,6 +364,8 @@ class ProFunctionDef {
|
||||
public:
|
||||
ProFunctionDef(ProFile *pro, int offset) : m_pro(pro), m_offset(offset) { m_pro->ref(); }
|
||||
ProFunctionDef(const ProFunctionDef &o) : m_pro(o.m_pro), m_offset(o.m_offset) { m_pro->ref(); }
|
||||
ProFunctionDef(ProFunctionDef &&other) Q_DECL_NOTHROW
|
||||
: m_pro(other.m_pro), m_offset(other.m_offset) { other.m_pro = nullptr; }
|
||||
~ProFunctionDef() { m_pro->deref(); }
|
||||
ProFunctionDef &operator=(const ProFunctionDef &o)
|
||||
{
|
||||
@ -375,6 +377,18 @@ public:
|
||||
}
|
||||
return *this;
|
||||
}
|
||||
ProFunctionDef &operator=(ProFunctionDef &&other) Q_DECL_NOTHROW
|
||||
{
|
||||
ProFunctionDef moved(std::move(other));
|
||||
swap(moved);
|
||||
return *this;
|
||||
}
|
||||
void swap(ProFunctionDef &other) Q_DECL_NOTHROW
|
||||
{
|
||||
qSwap(m_pro, other.m_pro);
|
||||
qSwap(m_offset, other.m_offset);
|
||||
}
|
||||
|
||||
ProFile *pro() const { return m_pro; }
|
||||
const ushort *tokPtr() const { return m_pro->tokPtr() + m_offset; }
|
||||
private:
|
||||
|
Loading…
x
Reference in New Issue
Block a user