aboutsummaryrefslogtreecommitdiff
path: root/Client/ThirdParty/fpm/3rdparty/googlebench/src/arraysize.h
diff options
context:
space:
mode:
authorchai <chaifix@163.com>2021-12-01 13:34:22 +0800
committerchai <chaifix@163.com>2021-12-01 13:34:22 +0800
commit09abf1b529b4226f585ecfbb20866715b901755b (patch)
tree16929f2a6bee3ad4667bdd006cfcc1e683ab7210 /Client/ThirdParty/fpm/3rdparty/googlebench/src/arraysize.h
parent84d961f754c905b37420f4d1b3fee8f4e523e58a (diff)
+fpm
Diffstat (limited to 'Client/ThirdParty/fpm/3rdparty/googlebench/src/arraysize.h')
-rw-r--r--Client/ThirdParty/fpm/3rdparty/googlebench/src/arraysize.h33
1 files changed, 33 insertions, 0 deletions
diff --git a/Client/ThirdParty/fpm/3rdparty/googlebench/src/arraysize.h b/Client/ThirdParty/fpm/3rdparty/googlebench/src/arraysize.h
new file mode 100644
index 0000000..51a50f2
--- /dev/null
+++ b/Client/ThirdParty/fpm/3rdparty/googlebench/src/arraysize.h
@@ -0,0 +1,33 @@
+#ifndef BENCHMARK_ARRAYSIZE_H_
+#define BENCHMARK_ARRAYSIZE_H_
+
+#include "internal_macros.h"
+
+namespace benchmark {
+namespace internal {
+// The arraysize(arr) macro returns the # of elements in an array arr.
+// The expression is a compile-time constant, and therefore can be
+// used in defining new arrays, for example. If you use arraysize on
+// a pointer by mistake, you will get a compile-time error.
+//
+
+// This template function declaration is used in defining arraysize.
+// Note that the function doesn't need an implementation, as we only
+// use its type.
+template <typename T, size_t N>
+char (&ArraySizeHelper(T (&array)[N]))[N];
+
+// That gcc wants both of these prototypes seems mysterious. VC, for
+// its part, can't decide which to use (another mystery). Matching of
+// template overloads: the final frontier.
+#ifndef COMPILER_MSVC
+template <typename T, size_t N>
+char (&ArraySizeHelper(const T (&array)[N]))[N];
+#endif
+
+#define arraysize(array) (sizeof(::benchmark::internal::ArraySizeHelper(array)))
+
+} // end namespace internal
+} // end namespace benchmark
+
+#endif // BENCHMARK_ARRAYSIZE_H_