Add documentation for unique_ptr and deleter class
authorDennis Tsiang <dennis.tsiang@arm.com>
Mon, 26 Jul 2021 15:40:21 +0000 (16:40 +0100)
committerDennis Tsiang <dennis.tsiang@arm.com>
Mon, 26 Jul 2021 15:40:27 +0000 (16:40 +0100)
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 <dennis.tsiang@arm.com>
util/custom_allocator.hpp

index 9eacd91..78be093 100644 (file)
@@ -38,6 +38,15 @@ namespace util
 template <typename T>
 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 <typename T>
 using unique_ptr = std::unique_ptr<T, deleter<T>>;
 
@@ -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 <typename T>
 class deleter
 {
@@ -249,6 +262,9 @@ private:
    allocator m_allocator;
 };
 
+/**
+ * @brief Creates a util::unique_ptr object using the allocator for the deleter.
+ */
 template <typename T, typename... Args>
 util::unique_ptr<T> allocator::make_unique(Args &&...args) const noexcept
 {