@@ -100,11 +100,13 @@ size_t BufferSize(const T& val);
100100template <>
101101size_t BufferSize (const std::string& str);
102102
103- template <class T , size_t N, std::enable_if_t <!has_TypeDefinition<std::array<T, N>>::value, bool > = true >
103+ template <class T , size_t N,
104+ std::enable_if_t <!has_TypeDefinition<std::array<T, N>>::value, bool > = true >
104105size_t BufferSize (const std::array<T, N>& v);
105106
106- template <template <class , class > class Container , class T , class ... TArgs,
107- std::enable_if_t <!has_TypeDefinition<Container<T, TArgs...>>::value, bool > = true >
107+ template <
108+ template <class , class > class Container , class T , class ... TArgs,
109+ std::enable_if_t <!has_TypeDefinition<Container<T, TArgs...>>::value, bool > = true >
108110size_t BufferSize (const Container<T, TArgs...>& vect);
109111
110112// ---------- Forward declarations of DeserializeFromBuffer -----------
@@ -115,11 +117,13 @@ void DeserializeFromBuffer(SpanBytesConst& buffer, T& dest);
115117template <>
116118void DeserializeFromBuffer (SpanBytesConst& buffer, std::string& str);
117119
118- template <class T , size_t N, std::enable_if_t <!has_TypeDefinition<std::array<T, N>>::value, bool > = true >
120+ template <class T , size_t N,
121+ std::enable_if_t <!has_TypeDefinition<std::array<T, N>>::value, bool > = true >
119122void DeserializeFromBuffer (SpanBytesConst& buffer, std::array<T, N>& v);
120123
121- template <template <class , class > class Container , class T , class ... TArgs,
122- std::enable_if_t <!has_TypeDefinition<Container<T, TArgs...>>::value, bool > = true >
124+ template <
125+ template <class , class > class Container , class T , class ... TArgs,
126+ std::enable_if_t <!has_TypeDefinition<Container<T, TArgs...>>::value, bool > = true >
123127void DeserializeFromBuffer (SpanBytesConst& buffer, Container<T, TArgs...>& dest);
124128
125129// ---------- Forward declarations of SerializeIntoBuffer -----------
@@ -130,11 +134,13 @@ void SerializeIntoBuffer(SpanBytes& buffer, const T& value);
130134template <>
131135void SerializeIntoBuffer (SpanBytes& buffer, const std::string& str);
132136
133- template <class T , size_t N, std::enable_if_t <!has_TypeDefinition<std::array<T, N>>::value, bool > = true >
137+ template <class T , size_t N,
138+ std::enable_if_t <!has_TypeDefinition<std::array<T, N>>::value, bool > = true >
134139void SerializeIntoBuffer (SpanBytes& buffer, const std::array<T, N>& v);
135140
136- template <template <class , class > class Container , class T , class ... TArgs,
137- std::enable_if_t <!has_TypeDefinition<Container<T, TArgs...>>::value, bool > = true >
141+ template <
142+ template <class , class > class Container , class T , class ... TArgs,
143+ std::enable_if_t <!has_TypeDefinition<Container<T, TArgs...>>::value, bool > = true >
138144void SerializeIntoBuffer (SpanBytes& buffer, const Container<T, TArgs...>& vect);
139145
140146// -----------------------------------------------------------------------
@@ -177,8 +183,8 @@ inline void Span<T>::trimFront(size_t offset)
177183#endif // __s390x__
178184#if !defined(SERIALIZE_LITTLEENDIAN)
179185#if defined(__GNUC__) || defined(__clang__) || defined(__ICCARM__)
180- #if (defined(__BIG_ENDIAN__) || \
181- (defined (__BYTE_ORDER__) && __BYTE_ORDER__ == __ORDER_BIG_ENDIAN__))
186+ #if (defined(__BIG_ENDIAN__) || \
187+ (defined (__BYTE_ORDER__) && __BYTE_ORDER__ == __ORDER_BIG_ENDIAN__))
182188#define SERIALIZE_LITTLEENDIAN 0
183189#else
184190#define SERIALIZE_LITTLEENDIAN 1
@@ -494,9 +500,10 @@ inline void SerializeIntoBuffer(SpanBytes& buffer, T const& value)
494500 throw std::runtime_error (" SerializeIntoBuffer: buffer overflow" );
495501 }
496502#if SERIALIZE_LITTLEENDIAN == 0
497- *(reinterpret_cast <T*>(buffer.data ())) = EndianSwap<T>(value);
503+ T swapped = EndianSwap<T>(value);
504+ std::memcpy (buffer.data (), &swapped, S);
498505#else
499- *( reinterpret_cast <T*>( buffer.data ())) = value;
506+ std::memcpy ( buffer.data (), & value, S) ;
500507#endif
501508 buffer.trimFront (S); // NOLINT
502509 }
0 commit comments