52 template <
typename T>
using decay_t = std::remove_cvref_t<T>;
68 template <
typename Rep,
typename Period>
73 template <
typename Clock,
typename Duration>
81 std::is_same_v<decay_t<T>, std::vector<unsigned char>>;
85 std::is_same_v<decay_t<T>, std::span<const unsigned char>>;
89 std::is_same_v<decay_t<T>, std::span<const std::byte>>;
94 std::is_enum_v<decay_t<T>>;
98 template <
typename... Ts>
99 struct pack_size<std::tuple<Ts...>> : std::integral_constant<std::size_t, sizeof...(Ts)> {};