1#ifndef BENCHMARK_API_INTERNAL_H 2#define BENCHMARK_API_INTERNAL_H 3 4#include "benchmark/benchmark.h" 5 6#include <cmath> 7#include <iosfwd> 8#include <limits> 9#include <string> 10#include <vector> 11 12namespace benchmark { 13namespace internal { 14 15// Information kept per benchmark we may want to run 16struct Benchmark::Instance { 17 std::string name; 18 Benchmark* benchmark; 19 ReportMode report_mode; 20 std::vector<int> arg; 21 TimeUnit time_unit; 22 int range_multiplier; 23 bool use_real_time; 24 bool use_manual_time; 25 BigO complexity; 26 BigOFunc* complexity_lambda; 27 UserCounters counters; 28 const std::vector<Statistics>* statistics; 29 bool last_benchmark_instance; 30 int repetitions; 31 double min_time; 32 size_t iterations; 33 int threads; // Number of concurrent threads to us 34}; 35 36bool FindBenchmarksInternal(const std::string& re, 37 std::vector<Benchmark::Instance>* benchmarks, 38 std::ostream* Err); 39 40bool IsZero(double n); 41 42ConsoleReporter::OutputOptions GetOutputOptions(bool force_no_color = false); 43 44} // end namespace internal 45} // end namespace benchmark 46 47#endif // BENCHMARK_API_INTERNAL_H 48