| 280 | |
| 281 | // Helper function to safely convert a Span to a Span<[const] unsigned char>. |
| 282 | template <typename T> constexpr auto UCharSpanCast(Span<T> s) -> Span<typename std::remove_pointer<decltype(UCharCast(s.data()))>::type> { return {UCharCast(s.data()), s.size()}; } |
| 283 | |
| 284 | /** Like the Span constructor, but for (const) unsigned char member types only. Only works for (un)signed char containers. */ |
| 285 | template <typename V> constexpr auto MakeUCharSpan(V&& v) -> decltype(UCharSpanCast(Span{std::forward<V>(v)})) { return UCharSpanCast(Span{std::forward<V>(v)}); } |
no test coverage detected