20 #include <type_traits> 54 "Tearable types must be trivially copyable.");
69 newDst[
i] =
data_[
i].load(std::memory_order_relaxed);
71 std::memcpy(&dst, newDst,
sizeof(
T));
76 std::memcpy(newData, &val,
sizeof(
T));
79 data_[
i].store(newData[
i], std::memory_order_relaxed);
88 unsigned char data alignas(
void*)[
sizeof(
void*)];
—— Concurrent Priority Queue Implementation ——
unsigned char data[sizeof(void *)]
requires E e noexcept(noexcept(s.error(std::move(e))))
static const std::size_t kNumDataWords
std::is_trivially_copyable< T > is_trivially_copyable
AtomicWord data_[kNumDataWords]