|
|
|
@ -136,4 +136,19 @@ namespace Common { |
|
|
|
return u32(a) | u32(b) << 8 | u32(c) << 16 | u32(d) << 24; |
|
|
|
} |
|
|
|
|
|
|
|
// std::size() does not support zero-size C arrays. We're fixing that. |
|
|
|
template <class C> |
|
|
|
constexpr auto Size(const C& c) -> decltype(c.size()) { |
|
|
|
return std::size(c); |
|
|
|
} |
|
|
|
|
|
|
|
template <class C> |
|
|
|
constexpr std::size_t Size(const C& c) { |
|
|
|
if constexpr (sizeof(C) == 0) { |
|
|
|
return 0; |
|
|
|
} else { |
|
|
|
return std::size(c); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
} // namespace Common |