#include "commandlineflags.h"
#include <algorithm>
#include <cctype>
#include <cstdlib>
#include <cstring>
#include <iostream>
#include <limits>
#include <map>
#include <utility>
#include "../src/string_util.h"
namespace benchmark {
namespace {
bool ParseInt32(const std::string& src_text, const char* str, int32_t* value) { … }
bool ParseDouble(const std::string& src_text, const char* str, double* value) { … }
bool ParseKvPairs(const std::string& src_text, const char* str,
std::map<std::string, std::string>* value) { … }
static std::string FlagToEnvVar(const char* flag) { … }
}
BENCHMARK_EXPORT
bool BoolFromEnv(const char* flag, bool default_val) { … }
BENCHMARK_EXPORT
int32_t Int32FromEnv(const char* flag, int32_t default_val) { … }
BENCHMARK_EXPORT
double DoubleFromEnv(const char* flag, double default_val) { … }
BENCHMARK_EXPORT
const char* StringFromEnv(const char* flag, const char* default_val) { … }
BENCHMARK_EXPORT
std::map<std::string, std::string> KvPairsFromEnv(
const char* flag, std::map<std::string, std::string> default_val) { … }
const char* ParseFlagValue(const char* str, const char* flag,
bool def_optional) { … }
BENCHMARK_EXPORT
bool ParseBoolFlag(const char* str, const char* flag, bool* value) { … }
BENCHMARK_EXPORT
bool ParseInt32Flag(const char* str, const char* flag, int32_t* value) { … }
BENCHMARK_EXPORT
bool ParseDoubleFlag(const char* str, const char* flag, double* value) { … }
BENCHMARK_EXPORT
bool ParseStringFlag(const char* str, const char* flag, std::string* value) { … }
BENCHMARK_EXPORT
bool ParseKeyValueFlag(const char* str, const char* flag,
std::map<std::string, std::string>* value) { … }
BENCHMARK_EXPORT
bool IsFlag(const char* str, const char* flag) { … }
BENCHMARK_EXPORT
bool IsTruthyFlagValue(const std::string& value) { … }
}