summaryrefslogtreecommitdiffstats
path: root/raul
diff options
context:
space:
mode:
authorDavid Robillard <d@drobilla.net>2017-10-06 12:12:50 +0200
committerDavid Robillard <d@drobilla.net>2017-12-16 11:27:36 +0100
commitb303104b23578cdb27f71589a71f74101080b19c (patch)
tree9f8a653b474f407263692ae7db4f38db5f95acb7 /raul
parent4a7bdcc10de06b475a9d52ca1567485e5718eace (diff)
downloadraul-b303104b23578cdb27f71589a71f74101080b19c.tar.gz
raul-b303104b23578cdb27f71589a71f74101080b19c.tar.bz2
raul-b303104b23578cdb27f71589a71f74101080b19c.zip
Add Managed wrapper for managing arbitrary types
Diffstat (limited to 'raul')
-rw-r--r--raul/Maid.hpp11
1 files changed, 11 insertions, 0 deletions
diff --git a/raul/Maid.hpp b/raul/Maid.hpp
index 1bd40a5..73cb82a 100644
--- a/raul/Maid.hpp
+++ b/raul/Maid.hpp
@@ -48,6 +48,17 @@ public:
Disposable* _maid_next;
};
+ /** Disposable wrapper for any type. */
+ template<typename T>
+ class Managed : public Raul::Maid::Disposable, public T
+ {
+ public:
+ template<typename... Args>
+ Managed(Args&&... args)
+ : T(std::forward<Args>(args)...)
+ {}
+ };
+
/** Deleter for Disposable objects. */
template<typename T>
class Disposer {