Skip to content

Commit

Permalink
fix
Browse files Browse the repository at this point in the history
  • Loading branch information
poor-circle committed Dec 25, 2023
1 parent a11d22d commit f94eac3
Showing 1 changed file with 9 additions and 5 deletions.
14 changes: 9 additions & 5 deletions include/ylt/struct_pack/endian_wrapper.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -277,7 +277,8 @@ STRUCT_PACK_INLINE void write(Writer& writer, const T& t) {
}
else if constexpr (detail::array<T>) {
if constexpr (detail::is_little_endian_copyable<sizeof(t[0])> &&
std::is_fundamental_v<std::remove_reference_t<decltype(t[0])>>) {
std::is_fundamental_v<
std::remove_reference_t<decltype(t[0])>>) {
write_bytes_array(writer, (const char*)t.data(), sizeof(T));
}
else {
Expand Down Expand Up @@ -319,7 +320,8 @@ STRUCT_PACK_INLINE constexpr std::size_t get_write_size(const T& t) {
return sizeof(T);
}
else if constexpr (detail::array<T>) {
if constexpr (std::is_fundamental_v<std::remove_reference_t<decltype(t[0])>>) {
if constexpr (std::is_fundamental_v<
std::remove_reference_t<decltype(t[0])>>) {
return sizeof(T);
}
else {
Expand Down Expand Up @@ -359,7 +361,8 @@ STRUCT_PACK_INLINE struct_pack::errc read(Reader& reader, T& t) {
}
}
else if constexpr (detail::array<T>) {
if constexpr (std::is_fundamental_v<std::remove_reference_t<decltype(t[0])>> &&
if constexpr (std::is_fundamental_v<
std::remove_reference_t<decltype(t[0])>> &&
detail::is_little_endian_copyable<sizeof(t[0])>) {
return read_bytes_array(reader, (char*)t.data(), sizeof(T));
}
Expand All @@ -381,7 +384,8 @@ STRUCT_PACK_INLINE struct_pack::errc read(Reader& reader, T& t) {
return ec;
}
if constexpr (detail::continuous_container<T> &&
std::is_fundamental_v<std::remove_reference_t<decltype(t[0])>> &&
std::is_fundamental_v<
std::remove_reference_t<decltype(t[0])>> &&
detail::is_little_endian_copyable<sizeof(t[0])> &&
checkable_reader_t<Reader>) {
if SP_UNLIKELY (sz > UINT64_MAX / sizeof(t[0]) || sz > SIZE_MAX) {
Expand All @@ -392,7 +396,7 @@ STRUCT_PACK_INLINE struct_pack::errc read(Reader& reader, T& t) {
return struct_pack::errc::no_buffer_space;
}
detail::resize(t, mem_size);
if(!read_bytes_array(reader, (char*)t.data(), mem_size)) {
if (!read_bytes_array(reader, (char*)t.data(), mem_size)) {
return struct_pack::errc::no_buffer_space;
}
return struct_pack::errc{};
Expand Down

0 comments on commit f94eac3

Please sign in to comment.