19#define hi_get_overloaded_macro2(_1, _2, name, ...) name
21namespace hi::inline v1 {
26template<
typename T,
typename U>
27[[nodiscard]]
bool compare_store(T &lhs, U &&rhs)
noexcept
30 lhs = std::forward<U>(rhs);
42template<
typename T,
typename U>
43[[nodiscard]]
bool compare_store(
std::atomic<T> &lhs, U &&rhs)
noexcept
45 return lhs.exchange(rhs, std::memory_order::relaxed) != rhs;