diff options
author | Steven Le Rouzic <steven.lerouzic@gmail.com> | 2025-03-18 22:31:59 +0100 |
---|---|---|
committer | Steven Le Rouzic <steven.lerouzic@gmail.com> | 2025-03-18 22:39:35 +0100 |
commit | 4884b594330dea41d04d776d14a5cb18d9a354bc (patch) | |
tree | b159defa21f10017baab0800c3848b3e9706940c /asl/base/utility.hpp | |
parent | a7475b6af21717f59c1b3d0dcb0fd6c1198a9fdc (diff) |
Make status implementation more correct wrt type punning
Diffstat (limited to 'asl/base/utility.hpp')
-rw-r--r-- | asl/base/utility.hpp | 7 |
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 |