Fix serialization

This commit is contained in:
momo5502
2024-11-03 09:48:32 +01:00
parent e7148c91ae
commit d710fb4403
4 changed files with 42 additions and 25 deletions

View File

@@ -38,8 +38,8 @@ namespace utils
};
template <typename T>
struct has_serialize_function<T, std::void_t<decltype(serialize(std::declval<buffer_serializer&>(),
std::declval<const T&>()))>>
struct has_serialize_function<T, std::void_t<decltype(::serialize(std::declval<buffer_serializer&>(),
std::declval<const std::remove_cvref_t<T>&>()))>>
: std::true_type
{
};
@@ -50,8 +50,8 @@ namespace utils
};
template <typename T>
struct has_deserialize_function<T, std::void_t<decltype(deserialize(
std::declval<buffer_deserializer&>(), std::declval<T&>()))>>
struct has_deserialize_function<T, std::void_t<decltype(::deserialize(
std::declval<buffer_deserializer&>(), std::declval<std::remove_cvref_t<T>&>()))>>
: std::true_type
{
};
@@ -122,7 +122,7 @@ namespace utils
}
else if constexpr (detail::has_deserialize_function<T>::value)
{
deserialize(*this, object);
::deserialize(*this, object);
}
else if constexpr (std::is_trivially_copyable_v<T>)
{
@@ -338,7 +338,7 @@ namespace utils
}
else if constexpr (detail::has_serialize_function<T>::value)
{
serialize(*this, object);
::serialize(*this, object);
}
else if constexpr (std::is_trivially_copyable_v<T>)
{