From 2324812b137b47809afd26e04ab92a2c07ca9aa9 Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Wed, 21 Apr 2021 11:09:09 +0530 Subject: [PATCH] Mark raii class as noexcept --- src/calibre/utils/cpp_binding.h | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/src/calibre/utils/cpp_binding.h b/src/calibre/utils/cpp_binding.h index f59eb66cfb..7803194c7e 100644 --- a/src/calibre/utils/cpp_binding.h +++ b/src/calibre/utils/cpp_binding.h @@ -18,26 +18,26 @@ template(NULL)> class generic_raii { private: T handle; - generic_raii( const generic_raii & ) ; - generic_raii & operator=( const generic_raii & ) ; + generic_raii( const generic_raii & ) noexcept; + generic_raii & operator=( const generic_raii & ) noexcept ; public: - explicit generic_raii(T h = null) : handle(h) {} - ~generic_raii() { release(); } + explicit generic_raii(T h = null) noexcept : handle(h) {} + ~generic_raii() noexcept { release(); } - void release() { + void release() noexcept { if (handle != null) { free_T(handle); handle = null; } } - T ptr() { return handle; } - T detach() { T ans = handle; handle = null; return ans; } - void attach(T val) { release(); handle = val; } - T* address() { return &handle; } - explicit operator bool() const { return handle != null; } - T* operator &() { return &handle; } + T ptr() noexcept { return handle; } + T detach() noexcept { T ans = handle; handle = null; return ans; } + void attach(T val) noexcept { release(); handle = val; } + T* address() noexcept { return &handle; } + explicit operator bool() const noexcept { return handle != null; } + T* operator &() noexcept { return &handle; } }; typedef generic_raii wchar_raii;