22template <std::
size_t TSize>
23struct SizeToTypeHelper {
24 using Type = std::array<std::uint8_t, TSize>;
28struct SizeToTypeHelper<1>
30 using Type = std::uint8_t;
34struct SizeToTypeHelper<2>
36 using Type = std::uint16_t;
40struct SizeToTypeHelper<4>
42 using Type = std::uint32_t;
46struct SizeToTypeHelper<8>
48 using Type = std::uint64_t;
52struct SizeToTypeHelper<3>
54 using Type = SizeToTypeHelper<4>::Type;
58struct SizeToTypeHelper<5>
60 using Type = SizeToTypeHelper<8>::Type;
64struct SizeToTypeHelper<6>
66 using Type = SizeToTypeHelper<8>::Type;
70struct SizeToTypeHelper<7>
72 using Type = SizeToTypeHelper<8>::Type;
80template <std::
size_t TSize,
bool TSigned = false>
83 using ByteType =
typename SizeToType<1, TSigned>::Type;
86 using Type = std::array<ByteType, TSize>;
89template <std::
size_t TSize>
90struct SizeToType<TSize, false>
92 using Type =
typename details::SizeToTypeHelper<TSize>::Type;
95template <std::
size_t TSize>
96struct SizeToType<TSize, true>
100 typename SizeToType<TSize, false>::Type
104template <std::
size_t TSize,
bool TSigned = false>
105using SizeToTypeT =
typename SizeToType<TSize, TSigned>::Type;
Main namespace for all classes / functions of COMMS library.