util/PackedBigEndian: add class PackedSignedBE16
This commit is contained in:
parent
7c9a460786
commit
ad8c2577c4
@ -50,6 +50,26 @@ public:
|
|||||||
static_assert(sizeof(PackedBE16) == sizeof(uint16_t), "Wrong size");
|
static_assert(sizeof(PackedBE16) == sizeof(uint16_t), "Wrong size");
|
||||||
static_assert(alignof(PackedBE16) == 1, "Wrong alignment");
|
static_assert(alignof(PackedBE16) == 1, "Wrong alignment");
|
||||||
|
|
||||||
|
/**
|
||||||
|
* A packed big-endian signed 16 bit integer.
|
||||||
|
*/
|
||||||
|
class PackedSignedBE16 {
|
||||||
|
PackedBE16 u;
|
||||||
|
|
||||||
|
public:
|
||||||
|
PackedSignedBE16() = default;
|
||||||
|
|
||||||
|
constexpr PackedSignedBE16(int16_t src) noexcept
|
||||||
|
:u(uint16_t(src)) {}
|
||||||
|
|
||||||
|
constexpr operator int16_t() const noexcept {
|
||||||
|
return (int16_t)(uint16_t)u;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
static_assert(sizeof(PackedSignedBE16) == sizeof(int16_t), "Wrong size");
|
||||||
|
static_assert(alignof(PackedSignedBE16) == 1, "Wrong alignment");
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* A packed big-endian 32 bit integer.
|
* A packed big-endian 32 bit integer.
|
||||||
*/
|
*/
|
||||||
|
Loading…
x
Reference in New Issue
Block a user