Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(80)

Side by Side Diff: third_party/google_benchmark/src/arraysize.h

Issue 2865663003: Adding Google benchmarking library. (Closed)
Patch Set: Sketch. Created 3 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
(Empty)
1 #ifndef BENCHMARK_ARRAYSIZE_H_
2 #define BENCHMARK_ARRAYSIZE_H_
3
4 #include "internal_macros.h"
5
6 namespace benchmark {
7 namespace internal {
8 // The arraysize(arr) macro returns the # of elements in an array arr.
9 // The expression is a compile-time constant, and therefore can be
10 // used in defining new arrays, for example. If you use arraysize on
11 // a pointer by mistake, you will get a compile-time error.
12 //
13
14 // This template function declaration is used in defining arraysize.
15 // Note that the function doesn't need an implementation, as we only
16 // use its type.
17 template <typename T, size_t N>
18 char (&ArraySizeHelper(T (&array)[N]))[N];
19
20 // That gcc wants both of these prototypes seems mysterious. VC, for
21 // its part, can't decide which to use (another mystery). Matching of
22 // template overloads: the final frontier.
23 #ifndef COMPILER_MSVC
24 template <typename T, size_t N>
25 char (&ArraySizeHelper(const T (&array)[N]))[N];
26 #endif
27
28 #define arraysize(array) (sizeof(::benchmark::internal::ArraySizeHelper(array)))
29
30 } // end namespace internal
31 } // end namespace benchmark
32
33 #endif // BENCHMARK_ARRAYSIZE_H_
OLDNEW
« no previous file with comments | « third_party/google_benchmark/src/CMakeLists.txt ('k') | third_party/google_benchmark/src/benchmark.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698