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;
79template <std::
size_t TSize,
bool TSigned = false>
82 using ByteType =
typename SizeToType<1, TSigned>::Type;
85 using Type = std::array<ByteType, TSize>;
88template <std::
size_t TSize>
89struct SizeToType<TSize, false>
91 using Type =
typename details::SizeToTypeHelper<TSize>::Type;
94template <std::
size_t TSize>
95struct SizeToType<TSize, true>
99 typename SizeToType<TSize, false>::Type
103template <std::
size_t TSize,
bool TSigned = false>
104using SizeToTypeT =
typename SizeToType<TSize, TSigned>::Type;
Main namespace for all classes / functions of COMMS library.