1#ifndef TATOOINE_CACHE_ALIGNMENT_H
2#define TATOOINE_CACHE_ALIGNMENT_H
10#ifdef __cpp_lib_hardware_interference_size
11using std::hardware_constructive_interference_size;
12using std::hardware_destructive_interference_size;
20template <
typename T, std::
size_t N = hardware_destructive_
interference_size>
25 template <
typename... Args>
26 explicit aligned(Args&&... args) : value(std::forward<Args>(args)...) {}
28 auto operator*() const -> auto const& {
return value; }
Definition: cache_alignment.h:21
aligned(Args &&... args)
Definition: cache_alignment.h:26
T value
Definition: cache_alignment.h:22
auto operator*() -> auto &
Definition: cache_alignment.h:29
auto operator->()
Definition: cache_alignment.h:31
auto operator->() const
Definition: cache_alignment.h:30
auto operator*() const -> auto const &
Definition: cache_alignment.h:28
Definition: algorithm.h:6
static constexpr std::size_t hardware_destructive_interference_size
Definition: cache_alignment.h:17
static constexpr std::size_t hardware_constructive_interference_size
Definition: cache_alignment.h:16