read_unaligned helper

"Things C++ should've had built-in 2 decades ago"
This commit is contained in:
PJB3005
2026-07-25 15:18:37 +02:00
parent 079c969bb4
commit 226a1fc482
+18
View File
@@ -0,0 +1,18 @@
#pragma once
namespace dusk::helpers::alignment {
/**
* Read data from an address that may not be aligned properly.
* @tparam T Type of data to read.
* @param ptr Address to read from.
* @return The copied value.
*/
template <typename T> requires std::is_trivially_copyable_v<T>
[[nodiscard]] constexpr T read_unaligned(u8 const* ptr) {
T copy;
memcpy(&copy, ptr, sizeof(T));
return copy;
}
}