From cc87f13181d12a7844e1988fe2d27ead4150d263 Mon Sep 17 00:00:00 2001 From: Tom Tromey Date: Sun, 15 Oct 2023 13:33:45 -0600 Subject: [PATCH] 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 --- gdbsupport/scope-exit.h | 22 ++-------------------- 1 file changed, 2 insertions(+), 20 deletions(-) diff --git a/gdbsupport/scope-exit.h b/gdbsupport/scope-exit.h index cb8d9255869..8fa40b1ca8a 100644 --- a/gdbsupport/scope-exit.h +++ b/gdbsupport/scope-exit.h @@ -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> (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: