summaryrefslogtreecommitdiff
path: root/asl/base/utility.hpp
diff options
context:
space:
mode:
authorSteven Le Rouzic <steven.lerouzic@gmail.com>2025-03-18 22:31:59 +0100
committerSteven Le Rouzic <steven.lerouzic@gmail.com>2025-03-18 22:39:35 +0100
commit4884b594330dea41d04d776d14a5cb18d9a354bc (patch)
treeb159defa21f10017baab0800c3848b3e9706940c /asl/base/utility.hpp
parenta7475b6af21717f59c1b3d0dcb0fd6c1198a9fdc (diff)
Make status implementation more correct wrt type punning
Diffstat (limited to 'asl/base/utility.hpp')
-rw-r--r--asl/base/utility.hpp7
1 files changed, 7 insertions, 0 deletions
diff --git a/asl/base/utility.hpp b/asl/base/utility.hpp
index 206a5b1..85c873d 100644
--- a/asl/base/utility.hpp
+++ b/asl/base/utility.hpp
@@ -35,6 +35,13 @@ template<typename T, typename U>
return static_cast<return_type>(x);
}
+template<typename T>
+[[nodiscard]] constexpr T* launder(T* ptr) noexcept // NOLINT
+ requires (!asl::is_func<T> && !asl::is_void<T>)
+{
+ return __builtin_launder(ptr);
+}
+
} // namespace std
namespace asl