diff --git a/util.h b/util.h index 84299d25..3b30919e 100644 --- a/util.h +++ b/util.h @@ -1,9 +1,9 @@ #ifndef UTIL_H #define UTIL_H -#include #include -#include +#include +#include #include #ifdef ANDROID @@ -45,7 +45,7 @@ namespace util } template - T * Acquire (TArgs... args) + T * Acquire (TArgs&&... args) { if (!m_Head) return new T(args...); else @@ -64,6 +64,13 @@ namespace util m_Head = t; } + template + std::unique_ptr > AcquireUnique (TArgs&&... args) + { + return std::unique_ptr >(Acquire (args...), + std::bind (&MemoryPool::Release, this, std::placeholders::_1)); + } + private: T * m_Head;