diff --git a/src/emulator/serialization.hpp b/src/emulator/serialization.hpp index f4938df4..dbbdae8a 100644 --- a/src/emulator/serialization.hpp +++ b/src/emulator/serialization.hpp @@ -123,6 +123,8 @@ namespace utils template void read(T& object) { + constexpr auto is_trivially_copyable = std::is_trivially_copyable_v; + if constexpr (Serializable) { object.deserialize(*this); @@ -145,7 +147,7 @@ namespace utils } else { - static_assert(std::false_type::value, "Key must be trivially copyable or implement serializable!"); + static_assert(!is_trivially_copyable, "Key must be trivially copyable or implement serializable!"); std::abort(); } } @@ -340,6 +342,8 @@ namespace utils template void write(const T& object) { + constexpr auto is_trivially_copyable = std::is_trivially_copyable_v; + if constexpr (Serializable) { object.serialize(*this); @@ -348,7 +352,7 @@ namespace utils { ::serialize(*this, object); } - else if constexpr (std::is_trivially_copyable_v) + else if constexpr (is_trivially_copyable) { union { @@ -362,7 +366,7 @@ namespace utils } else { - static_assert(std::false_type::value, "Key must be trivially copyable or implement serializable!"); + static_assert(!is_trivially_copyable, "Key must be trivially copyable or implement serializable!"); std::abort(); } }