86 static_assert(std::is_integral_v<typename Traits::CodeTy>);
87 static_assert(std::is_unsigned_v<typename Traits::CodeTy>);
88 static_assert(std::is_same_v<typename Traits::CodeTy, uint16_t> ||
89 std::is_same_v<typename Traits::CodeTy, uint32_t>);
91 static_assert(Traits::MaxCodeLenghtBits > 0 &&
92 Traits::MaxCodeLenghtBits <=
94 static_assert(Traits::MaxCodeLenghtBits == 16 ||
95 Traits::MaxCodeLenghtBits == 26);
97 static_assert(Traits::MaxNumCodeValues > 0 &&
98 Traits::MaxNumCodeValues <=
99 ((1ULL << Traits::MaxCodeLenghtBits) - 1ULL));
100 static_assert(Traits::MaxNumCodeValues == 162 ||
101 Traits::MaxNumCodeValues == 264);
103 static_assert(std::is_integral_v<typename Traits::CodeValueTy>);
104 static_assert(std::is_unsigned_v<typename Traits::CodeValueTy>);
105 static_assert(std::is_same_v<typename Traits::CodeValueTy, uint8_t> ||
106 std::is_same_v<typename Traits::CodeValueTy, uint32_t>);
108 static_assert(Traits::MaxCodeValueLenghtBits > 0 &&
109 Traits::MaxCodeValueLenghtBits <=
111 static_assert(Traits::MaxCodeValueLenghtBits == 8 ||
112 Traits::MaxCodeValueLenghtBits == 19);
114 static_assert(Traits::MaxCodeValue > 0 &&
115 Traits::MaxCodeValue <=
116 ((1ULL << Traits::MaxCodeValueLenghtBits) - 1ULL));
117 static_assert(Traits::MaxCodeValue == 255 || Traits::MaxCodeValue == 524287);
120 std::is_same_v<
decltype(Traits::SupportsFullDecode),
const bool>);
122 static_assert(!Traits::SupportsFullDecode ||
123 (Traits::MaxDiffLengthBits > 0 &&
124 Traits::MaxDiffLengthBits <=
126 static_assert(!Traits::SupportsFullDecode ||
127 (Traits::MaxDiffLengthBits == 5));
129 static_assert(!Traits::SupportsFullDecode ||
130 (Traits::MaxDiffLength > 0 &&
131 Traits::MaxDiffLength <=
132 ((1ULL << Traits::MaxDiffLengthBits) - 1ULL)));
133 static_assert(!Traits::SupportsFullDecode || (Traits::MaxDiffLength == 16));