summaryrefslogtreecommitdiff
path: root/include/fud_memory.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'include/fud_memory.hpp')
-rw-r--r--include/fud_memory.hpp16
1 files changed, 5 insertions, 11 deletions
diff --git a/include/fud_memory.hpp b/include/fud_memory.hpp
index 6f6816f..bb60ab7 100644
--- a/include/fud_memory.hpp
+++ b/include/fud_memory.hpp
@@ -79,7 +79,7 @@ constexpr void zeroObject(T& object)
static_assert(std::is_standard_layout_v<T>);
static_assert(std::is_trivially_copyable_v<T>);
- auto* objPtr = reinterpret_cast<uint8_t*>(&object);
+ auto* objPtr = std::bit_cast<uint8_t*>(&object);
for (size_t idx = 0; idx < sizeof(object); ++idx) {
objPtr[idx] = 0;
}
@@ -95,10 +95,8 @@ void copyMem(T& destination, const U& source)
static_assert(std::is_trivially_copyable_v<T>);
static_assert(std::is_trivially_copyable_v<U>);
- // NOLINTBEGIN(cppcoreguidelines-pro-type-reinterpret-cast)
- auto* destPtr = reinterpret_cast<char*>(&destination);
- const auto* srcPtr = reinterpret_cast<const char*>(&source);
- // NOLINTEND(cppcoreguidelines-pro-type-reinterpret-cast)
+ auto* destPtr = std::bit_cast<char*>(&destination);
+ const auto* srcPtr = std::bit_cast<const char*>(&source);
for (size_t idx = 0; idx < Count; ++idx) {
destPtr[idx] = srcPtr[idx];
@@ -121,9 +119,7 @@ int compareMem(const T& lhs, const U& rhs)
int difference = 0;
for (size_t idx = 0; idx < Count; ++idx) {
- // NOLINTBEGIN(cppcoreguidelines-pro-type-reinterpret-cast)
- difference = reinterpret_cast<const uint8_t*>(&lhs)[idx] - reinterpret_cast<const uint8_t*>(&rhs)[idx];
- // NOLINTEND(cppcoreguidelines-pro-type-reinterpret-cast)
+ difference = std::bit_cast<const uint8_t*>(&lhs)[idx] - std::bit_cast<const uint8_t*>(&rhs)[idx];
if (difference != 0) {
break;
}
@@ -142,9 +138,7 @@ int compareMem(const T& lhs, U&& rhs)
int difference = 0;
for (size_t idx = 0; idx < Count; ++idx) {
- // NOLINTBEGIN(cppcoreguidelines-pro-type-reinterpret-cast)
- difference = reinterpret_cast<const uint8_t*>(&lhs)[idx] - reinterpret_cast<const uint8_t*>(&uRhs)[idx];
- // NOLINTEND(cppcoreguidelines-pro-type-reinterpret-cast)
+ difference = std::bit_cast<const uint8_t*>(&lhs)[idx] - std::bit_cast<const uint8_t*>(&uRhs)[idx];
if (difference != 0) {
break;
}