@@ -865,11 +865,7 @@ class BENCHMARK_EXPORT State {
865865 // BM_Compress 50 50 14115038 compress:27.3%
866866 //
867867 // REQUIRES: a benchmark has exited its benchmarking loop.
868- void SetLabel (const char * label);
869-
870- void BENCHMARK_ALWAYS_INLINE SetLabel (const std::string& str) {
871- this ->SetLabel (str.c_str ());
872- }
868+ void SetLabel (const std::string& label);
873869
874870 // Range arguments for this run. CHECKs if the argument has been set.
875871 BENCHMARK_ALWAYS_INLINE
@@ -1249,8 +1245,8 @@ class BENCHMARK_EXPORT Benchmark {
12491245 TimeUnit GetTimeUnit () const ;
12501246
12511247 protected:
1252- explicit Benchmark (const char * name);
1253- void SetName (const char * name);
1248+ explicit Benchmark (const std::string& name);
1249+ void SetName (const std::string& name);
12541250
12551251 public:
12561252 const char * GetName () const ;
@@ -1305,12 +1301,12 @@ class BENCHMARK_EXPORT Benchmark {
13051301// the specified functor 'fn'.
13061302//
13071303// RETURNS: A pointer to the registered benchmark.
1308- internal::Benchmark* RegisterBenchmark (const char * name,
1304+ internal::Benchmark* RegisterBenchmark (const std::string& name,
13091305 internal::Function* fn);
13101306
13111307#if defined(BENCHMARK_HAS_CXX11)
13121308template <class Lambda >
1313- internal::Benchmark* RegisterBenchmark (const char * name, Lambda&& fn);
1309+ internal::Benchmark* RegisterBenchmark (const std::string& name, Lambda&& fn);
13141310#endif
13151311
13161312// Remove all registered benchmarks. All pointers to previously registered
@@ -1322,7 +1318,7 @@ namespace internal {
13221318// (ie those created using the BENCHMARK(...) macros.
13231319class BENCHMARK_EXPORT FunctionBenchmark : public Benchmark {
13241320 public:
1325- FunctionBenchmark (const char * name, Function* func)
1321+ FunctionBenchmark (const std::string& name, Function* func)
13261322 : Benchmark(name), func_(func) {}
13271323
13281324 void Run (State& st) BENCHMARK_OVERRIDE;
@@ -1339,28 +1335,28 @@ class LambdaBenchmark : public Benchmark {
13391335
13401336 private:
13411337 template <class OLambda >
1342- LambdaBenchmark (const char * name, OLambda&& lam)
1338+ LambdaBenchmark (const std::string& name, OLambda&& lam)
13431339 : Benchmark(name), lambda_(std::forward<OLambda>(lam)) {}
13441340
13451341 LambdaBenchmark (LambdaBenchmark const &) = delete ;
13461342
13471343 template <class Lam > // NOLINTNEXTLINE(readability-redundant-declaration)
1348- friend Benchmark* ::benchmark::RegisterBenchmark(const char * , Lam&&);
1344+ friend Benchmark* ::benchmark::RegisterBenchmark(const std::string& , Lam&&);
13491345
13501346 Lambda lambda_;
13511347};
13521348#endif
13531349} // namespace internal
13541350
1355- inline internal::Benchmark* RegisterBenchmark (const char * name,
1351+ inline internal::Benchmark* RegisterBenchmark (const std::string& name,
13561352 internal::Function* fn) {
13571353 return internal::RegisterBenchmarkInternal (
13581354 ::new internal::FunctionBenchmark (name, fn));
13591355}
13601356
13611357#ifdef BENCHMARK_HAS_CXX11
13621358template <class Lambda >
1363- internal::Benchmark* RegisterBenchmark (const char * name, Lambda&& fn) {
1359+ internal::Benchmark* RegisterBenchmark (const std::string& name, Lambda&& fn) {
13641360 using BenchType =
13651361 internal::LambdaBenchmark<typename std::decay<Lambda>::type>;
13661362 return internal::RegisterBenchmarkInternal (
@@ -1371,7 +1367,7 @@ internal::Benchmark* RegisterBenchmark(const char* name, Lambda&& fn) {
13711367#if defined(BENCHMARK_HAS_CXX11) && \
13721368 (!defined (BENCHMARK_GCC_VERSION) || BENCHMARK_GCC_VERSION >= 409 )
13731369template <class Lambda , class ... Args>
1374- internal::Benchmark* RegisterBenchmark (const char * name, Lambda&& fn,
1370+ internal::Benchmark* RegisterBenchmark (const std::string& name, Lambda&& fn,
13751371 Args&&... args) {
13761372 return benchmark::RegisterBenchmark (
13771373 name, [=](benchmark::State& st) { fn (st, args...); });
0 commit comments