Use forwarding references with std::forward()

This commit is contained in:
Daniel Krupiński 2021-09-29 14:37:30 +02:00
parent beb26af01c
commit c725ffd106

View File

@ -3616,7 +3616,7 @@ class VmaPoolAllocator
public: public:
VmaPoolAllocator(const VkAllocationCallbacks* pAllocationCallbacks, uint32_t firstBlockCapacity); VmaPoolAllocator(const VkAllocationCallbacks* pAllocationCallbacks, uint32_t firstBlockCapacity);
~VmaPoolAllocator(); ~VmaPoolAllocator();
template<typename... Types> T* Alloc(Types... args); template<typename... Types> T* Alloc(Types&&... args);
void Free(T* ptr); void Free(T* ptr);
private: private:
@ -3658,7 +3658,7 @@ VmaPoolAllocator<T>::~VmaPoolAllocator()
} }
template<typename T> template<typename T>
template<typename... Types> T* VmaPoolAllocator<T>::Alloc(Types... args) template<typename... Types> T* VmaPoolAllocator<T>::Alloc(Types&&... args)
{ {
for(size_t i = m_ItemBlocks.size(); i--; ) for(size_t i = m_ItemBlocks.size(); i--; )
{ {
@ -6272,7 +6272,7 @@ class VmaAllocationObjectAllocator
public: public:
VmaAllocationObjectAllocator(const VkAllocationCallbacks* pAllocationCallbacks); VmaAllocationObjectAllocator(const VkAllocationCallbacks* pAllocationCallbacks);
template<typename... Types> VmaAllocation Allocate(Types... args); template<typename... Types> VmaAllocation Allocate(Types&&... args);
void Free(VmaAllocation hAlloc); void Free(VmaAllocation hAlloc);
private: private:
@ -14160,7 +14160,7 @@ VmaAllocationObjectAllocator::VmaAllocationObjectAllocator(const VkAllocationCal
{ {
} }
template<typename... Types> VmaAllocation VmaAllocationObjectAllocator::Allocate(Types... args) template<typename... Types> VmaAllocation VmaAllocationObjectAllocator::Allocate(Types&&... args)
{ {
VmaMutexLock mutexLock(m_Mutex); VmaMutexLock mutexLock(m_Mutex);
return m_Allocator.Alloc<Types...>(std::forward<Types>(args)...); return m_Allocator.Alloc<Types...>(std::forward<Types>(args)...);