From 3e3877ac83e14b899b6998c7bfc16746c48662eb Mon Sep 17 00:00:00 2001 From: Denis Orlov Date: Wed, 4 Jan 2023 23:50:30 +0300 Subject: [PATCH] Fix builds on Linux CI This fixes compilation on older Linux compilers (gcc 7.5.0, clang 7.0.0) that do not seem to implement P0558R1 defect report, thus not allowing the usage of value_type member typedef from std::atomic. --- include/vk_mem_alloc.h | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/include/vk_mem_alloc.h b/include/vk_mem_alloc.h index c802331..b787c36 100644 --- a/include/vk_mem_alloc.h +++ b/include/vk_mem_alloc.h @@ -4006,6 +4006,8 @@ template struct AtomicTransactionalIncrement { public: + using T = decltype(AtomicT().load()); + ~AtomicTransactionalIncrement() { if(m_Atomic) @@ -4013,7 +4015,7 @@ public: } void Commit() { m_Atomic = nullptr; } - typename AtomicT::value_type Increment(AtomicT* atomic) + T Increment(AtomicT* atomic) { m_Atomic = atomic; return m_Atomic->fetch_add(1);