../../../../modules/juce/modules/juce_core/memory/juce_Atomic.h: In instantiation of ‘juce::Atomic<Type>::~Atomic() [with Type = bool]’:
../../../../modules/gin/modules/gin/utilities/gin_downloadmanager.cpp:9:58: required from here
../../../../modules/juce/modules/juce_core/memory/juce_Atomic.h:58:24: error: static assertion failed: This class can only be used for lock-free types
static_assert (std::atomic<Type>::is_always_lock_free,
You should be able to. I use it. That assert hits if this flag is set:
__cpp_lib_atomic_is_always_lock_free and the __cpp_lib_atomic_is_always_lock_free flag for that type is set.
But I don’t know what sets those flags, or what their use cases are.
I’m guessing it’s related to a build setting?
I’ve rewritten my code to use std::atomic, but in general why does juce::Atomic have the additional requirement of being lock free? Just seems to make the class less useful.