diff options
author | David Robillard <d@drobilla.net> | 2018-09-16 22:11:37 +0200 |
---|---|---|
committer | David Robillard <d@drobilla.net> | 2018-09-16 22:11:37 +0200 |
commit | 0c6bb92f3f59b6b86f3b7b56224677e79b2e6900 (patch) | |
tree | 40e3173eec8b493f22152372cc00782f2a076f92 /raul/Maid.hpp | |
parent | 07396e8d23bb8724c5960b57aca33e08a97f4e52 (diff) | |
download | raul-0c6bb92f3f59b6b86f3b7b56224677e79b2e6900.tar.gz raul-0c6bb92f3f59b6b86f3b7b56224677e79b2e6900.tar.bz2 raul-0c6bb92f3f59b6b86f3b7b56224677e79b2e6900.zip |
Lint with clang-tidy
Diffstat (limited to 'raul/Maid.hpp')
-rw-r--r-- | raul/Maid.hpp | 19 |
1 files changed, 10 insertions, 9 deletions
diff --git a/raul/Maid.hpp b/raul/Maid.hpp index 26845b6..fa54871 100644 --- a/raul/Maid.hpp +++ b/raul/Maid.hpp @@ -41,11 +41,11 @@ public: /** An object that can be disposed via Maid::dispose(). */ class Disposable : public Deletable { public: - Disposable() : _maid_next(nullptr) {} + Disposable() = default; private: friend class Maid; - Disposable* _maid_next; + Disposable* _maid_next{}; }; /** Disposable wrapper for any type. */ @@ -54,7 +54,7 @@ public: { public: template<typename... Args> - Managed(Args&&... args) + explicit Managed(Args&&... args) : T(std::forward<Args>(args)...) {} }; @@ -63,14 +63,14 @@ public: template<typename T> class Disposer { public: - Disposer(Maid& maid) : _maid(&maid) {} - Disposer() : _maid(nullptr) {} + explicit Disposer(Maid* maid) : _maid(maid) {} + Disposer() : _maid(nullptr) {} void operator()(T* obj) { if (_maid) { _maid->dispose(obj); } } - Maid* _maid; + Maid* _maid{nullptr}; }; /** A managed pointer that automatically disposes of its contents. @@ -86,7 +86,7 @@ public: /** Return false iff there is currently no garbage. */ inline bool empty() const { - return !(bool)_disposed.load(std::memory_order_relaxed); + return !_disposed.load(std::memory_order_relaxed); } /** Enqueue an object for deletion when cleanup() is called next. @@ -127,8 +127,9 @@ public: /** Make a unique_ptr that will dispose its object when dropped. */ template<class T, class... Args> managed_ptr<T> make_managed(Args&&... args) { - T* obj = new T(std::forward<Args>(args)...); - return std::unique_ptr<T, Disposer<T> >(obj, Disposer<T>(*this)); + return std::unique_ptr<T, Disposer<T> >( + new T(std::forward<Args>(args)...), + Disposer<T>(this)); } private: |