25#if defined(ARDUINO_ARCH_SAMD)
29using size_t =
decltype(
sizeof(char));
33#if !defined(ARDUINO_ARCH_SAMD)
40 template<
typename T >
class atomic {
50 template<
typename T > T&&
move(T& t)
noexcept {
return static_cast<T&&
>(t); }
53 template<
typename T,
size_t long N >
struct array
56 decltype(
sizeof(0))
size()
const {
return N; }
T load(std::memory_order=std::memory_order_seq_cst) const volatile noexcept
Definition ghostl.h:47
void store(T desired, std::memory_order=std::memory_order_seq_cst) volatile noexcept
Definition ghostl.h:46
atomic(T desired)
Definition ghostl.h:45
atomic()
Definition ghostl.h:44
T value
Definition ghostl.h:42
T & operator*() const
Definition ghostl.h:74
T & operator[](decltype(sizeof(0)) i) const
Definition ghostl.h:68
unique_ptr(pointer p)
Definition ghostl.h:66
pointer operator->() const noexcept
Definition ghostl.h:67
void reset(pointer p=pointer()) noexcept
Definition ghostl.h:69
pointer ptr
Definition ghostl.h:76
T * pointer
Definition ghostl.h:64
unique_ptr() noexcept
Definition ghostl.h:65
decltype(sizeof(char)) size_t
Definition ghostl.h:29
void atomic_thread_fence(std::memory_order order) noexcept
Definition ghostl.h:49
T && move(T &t) noexcept
Definition ghostl.h:50
decltype(nullptr) nullptr_t
Definition ghostl.h:80
memory_order
Definition ghostl.h:34
@ memory_order_relaxed
Definition ghostl.h:35
@ memory_order_release
Definition ghostl.h:37
@ memory_order_acquire
Definition ghostl.h:36
@ memory_order_seq_cst
Definition ghostl.h:38
T && forward(typename identity< T >::type &t) noexcept
Definition ghostl.h:88
T * function
Definition ghostl.h:79
decltype(sizeof(0)) size() const
Definition ghostl.h:56
T & operator[](decltype(sizeof(0)) i)
Definition ghostl.h:57
const T & operator[](decltype(sizeof(0)) i) const
Definition ghostl.h:58
T _M_elems[N]
Definition ghostl.h:55
T type
Definition ghostl.h:84