Rely on copy elision in scope-exit.h

gdbsupport/scope-exit.h has a couple of comments about being able to
rely on copy elision in C++17.  This patch makes the change.

Approved-By: Pedro Alves <pedro@palves.net>
This commit is contained in:
Tom Tromey 2023-10-15 13:33:45 -06:00
parent 553b78748f
commit cc87f13181

View File

@ -69,16 +69,7 @@ public:
}
}
/* This is needed for make_scope_exit because copy elision isn't
guaranteed until C++17. An optimizing compiler will usually skip
calling this, but it must exist. */
scope_exit_base (const scope_exit_base &other)
: m_released (other.m_released)
{
other.m_released = true;
}
void operator= (const scope_exit_base &) = delete;
DISABLE_COPY_AND_ASSIGN (scope_exit_base);
/* If this is called, then the wrapped function will not be called
on destruction. */
@ -132,16 +123,7 @@ public:
rhs.release ();
}
/* This is needed for make_scope_exit because copy elision isn't
guaranteed until C++17. An optimizing compiler will usually skip
calling this, but it must exist. */
scope_exit (const scope_exit &other)
: scope_exit_base<scope_exit<EF>> (other),
m_exit_function (other.m_exit_function)
{
}
void operator= (const scope_exit &) = delete;
DISABLE_COPY_AND_ASSIGN (scope_exit);
void operator= (scope_exit &&) = delete;
private: