12#ifndef O2_FRAMEWORK_BIGENDIAN_H_
13#define O2_FRAMEWORK_BIGENDIAN_H_
28 auto const totalBytes =
static_cast<size_t>(
count) * typeSize;
29 if constexpr (std::endian::native == std::endian::big) {
30 std::memcpy(dest,
src, totalBytes);
35 auto* p =
static_cast<uint16_t*
>(dest);
36 auto* q =
static_cast<const uint16_t*
>(
src);
38 p[
i] = __builtin_bswap16(q[
i]);
43 auto* p =
static_cast<uint32_t*
>(dest);
44 auto* q =
static_cast<const uint32_t*
>(
src);
46 p[
i] = __builtin_bswap32(q[
i]);
51 auto* p =
static_cast<uint64_t*
>(dest);
52 auto* q =
static_cast<const uint64_t*
>(
src);
54 p[
i] = __builtin_bswap64(q[
i]);
59 std::memcpy(dest,
src, totalBytes);
Defining ITS Vertex explicitly as messageable.
void bigEndianCopy(void *dest, const void *src, int count, size_t typeSize)