From a77259adc1ad02ffd0bed28e50cc52f40cf37cf0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alexander=20Aleksandrovi=C4=8D=20Klimov?= Date: Tue, 5 Nov 2024 13:15:22 +0100 Subject: [PATCH] Atomic#Atomic(T): fix C++ compliance by not calling `std::atomic::atomic(void)`. After the latter the instance "does not contain a T object, and its only valid uses are destruction and initialization by std::atomic_init" which we don't call. So the only safe option is `std::atomic::atomic(T)`. https://en.cppreference.com/w/cpp/atomic/atomic/atomic --- lib/base/atomic.hpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/base/atomic.hpp b/lib/base/atomic.hpp index c8f169c0b..bf0aecdc6 100644 --- a/lib/base/atomic.hpp +++ b/lib/base/atomic.hpp @@ -24,7 +24,7 @@ public: * * @param desired Initial value */ - inline Atomic(T desired) + inline Atomic(T desired) : std::atomic(desired) { this->store(desired); } @@ -35,7 +35,7 @@ public: * @param desired Initial value * @param order Initial store operation's memory order */ - inline Atomic(T desired, std::memory_order order) + inline Atomic(T desired, std::memory_order order) : std::atomic(desired) { this->store(desired, order); }