From f22b7e33b9cdee005be39d630d2d2e3ac29b5c15 Mon Sep 17 00:00:00 2001 From: Dennis Tsiang Date: Mon, 26 Jul 2021 16:40:21 +0100 Subject: [PATCH] Add documentation for unique_ptr and deleter class Add brief documentation to explain what the custom util::unique_ptr and deleter class is used for. Change-Id: I7f4d456a34d55c09ad470b7c34e32b069203ca6b Signed-off-by: Dennis Tsiang --- util/custom_allocator.hpp | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/util/custom_allocator.hpp b/util/custom_allocator.hpp index 9eacd91..78be093 100644 --- a/util/custom_allocator.hpp +++ b/util/custom_allocator.hpp @@ -38,6 +38,15 @@ namespace util template class deleter; +/** + * @brief Wrapper for unique_ptr. + * + * This is a wrapper for unique_ptr that can be used to construct/destroy objects using the allocators in + * VkAllocationCallbacks. This smart pointer contains a full copy of the VkAllocationCallbacks, so its size is + * considerably larger than sizeof(void*). + * + * allocator::make_unique is provided to facilitate creating instances of this object. + */ template using unique_ptr = std::unique_ptr>; @@ -232,6 +241,10 @@ void allocator::destroy(size_t num_objects, T *objects) const noexcept allocator.deallocate(objects, num_objects); } +/** + * @brief Class deleter is used to free the resource managed by the util::unique_ptr. Uses the passed in allocator's + * destroy method. + */ template class deleter { @@ -249,6 +262,9 @@ private: allocator m_allocator; }; +/** + * @brief Creates a util::unique_ptr object using the allocator for the deleter. + */ template util::unique_ptr allocator::make_unique(Args &&...args) const noexcept { -- 2.7.4