瀏覽代碼

common: common_funcs: Add Size helper function.

bunnei 5 年之前
父節點
當前提交
02c2b28cd0
共有 1 個文件被更改,包括 15 次插入0 次删除
  1. 15 0
      src/common/common_funcs.h

+ 15 - 0
src/common/common_funcs.h

@@ -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