diff --git a/include/ircd/util/bswap.h b/include/ircd/util/bswap.h index 316df628d..53ecf0afe 100644 --- a/include/ircd/util/bswap.h +++ b/include/ircd/util/bswap.h @@ -32,7 +32,8 @@ T & ircd::util::bswap(T *const &val) { assert(val != nullptr); - std::reverse(data(*val), data(*val) + size(*val)); + const auto ptr{reinterpret_cast(val)}; + std::reverse(ptr, ptr + sizeof(T)); return *val; } @@ -42,6 +43,8 @@ T ircd::util::bswap(const T &val) { T ret; - std::reverse_copy(data(val), data(val) + size(val), data(ret)); + const auto valptr{reinterpret_cast(&val)}; + const auto retptr{reinterpret_cast(&ret)}; + std::reverse_copy(valptr, valptr + sizeof(T), retptr); return ret; }