alpaka
Abstraction Library for Parallel Kernel Acceleration
Loading...
Searching...
No Matches
MemoryOrderStl.hpp
Go to the documentation of this file.
1/* Copyright 2025 Tapish Narwal
2 * SPDX-License-Identifier: MPL-2.0
3 */
4
5#pragma once
6
8
9#include <atomic>
10#include <concepts>
11
12namespace alpaka
13{
15 {
16 template<MemoryOrder TMemOrder>
17 static constexpr auto get(TMemOrder)
18 {
19 if constexpr(std::same_as<TMemOrder, mem_order::SeqCst>)
20 {
21 return std::memory_order::seq_cst;
22 }
23 if constexpr(std::same_as<TMemOrder, mem_order::AcqRel>)
24 {
25 return std::memory_order::acq_rel;
26 }
27 if constexpr(std::same_as<TMemOrder, mem_order::Release>)
28 {
29 return std::memory_order::release;
30 }
31 if constexpr(std::same_as<TMemOrder, mem_order::Acquire>)
32 {
33 return std::memory_order::acquire;
34 }
35 if constexpr(std::same_as<TMemOrder, mem_order::Relaxed>)
36 {
37 return std::memory_order::relaxed;
38 }
39 }
40 };
41
42} // namespace alpaka
The alpaka accelerator library.
static constexpr auto get(TMemOrder)