25template <std::
size_t TSize>
26struct SizeToTypeHelper {
27 using Type = std::array<std::uint8_t, TSize>;
31struct SizeToTypeHelper<1>
33 using Type = std::uint8_t;
37struct SizeToTypeHelper<2>
39 using Type = std::uint16_t;
43struct SizeToTypeHelper<4>
45 using Type = std::uint32_t;
49struct SizeToTypeHelper<8>
51 using Type = std::uint64_t;
55struct SizeToTypeHelper<3>
57 using Type = SizeToTypeHelper<4>::Type;
61struct SizeToTypeHelper<5>
63 using Type = SizeToTypeHelper<8>::Type;
67struct SizeToTypeHelper<6>
69 using Type = SizeToTypeHelper<8>::Type;
73struct SizeToTypeHelper<7>
75 using Type = SizeToTypeHelper<8>::Type;
82template <std::
size_t TSize,
bool TSigned = false>
85 using ByteType =
typename SizeToType<1, TSigned>::Type;
88 using Type = std::array<ByteType, TSize>;
91template <std::
size_t TSize>
92struct SizeToType<TSize, false>
94 using Type =
typename details::SizeToTypeHelper<TSize>::Type;
97template <std::
size_t TSize>
98struct SizeToType<TSize, true>
100 using Type =
typename
102 typename SizeToType<TSize, false>::Type
106template <std::
size_t TSize,
bool TSigned = false>
107using SizeToTypeT =
typename SizeToType<TSize, TSigned>::Type;
Main namespace for all classes / functions of COMMS library.