Describe the bug
In #1948 the various BENCHMARK macros were changed to something like:
#define BENCHMARK(...) \
BENCHMARK_PRIVATE_DECLARE(_benchmark_) = \
(::benchmark::internal::RegisterBenchmarkInternal( \
benchmark::internal::make_unique< \
::benchmark::internal::FunctionBenchmark>(#__VA_ARGS__, \
__VA_ARGS__)))
This makes a relatively namespace lookup for benchmark::internal::make_unique even though the macros can be invoked from any namespace.
If the user code defined their own benchmark namespace, then the compiler fails finding make_unique. This produces errors in the Apache Arrow continuous benchmarking, for example here.
Describe the bug
In #1948 the various
BENCHMARKmacros were changed to something like:This makes a relatively namespace lookup for
benchmark::internal::make_uniqueeven though the macros can be invoked from any namespace.If the user code defined their own
benchmarknamespace, then the compiler fails findingmake_unique. This produces errors in the Apache Arrow continuous benchmarking, for example here.