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.