6#include <unordered_map>
17 bool register_bool_flag(
const std::string& name,
bool default_value =
false, std::string help_message =
"");
18 bool register_int32_flag(
const std::string& name, int32_t default_value = 0, std::string help_message =
"");
19 bool register_double_flag(
const std::string& name,
double default_value = 0.0, std::string help_message =
"");
20 bool register_string_flag(
const std::string& name, std::string default_value =
"", std::string help_message =
"");
25 bool has_flag(
const std::string& name)
const;
27 bool bool_ref(
const std::string& name);
28 int32_t&
int32_ref(
const std::string& name);
30 std::string&
string_ref(
const std::string& name);
32 std::string
help()
const;
35 enum flag_type { flag_bool, flag_int32, flag_double, flag_string };
39 std::string help_message;
41 std::unordered_map<std::string, flag_info> registered_flags_;
42 std::vector<bool> values_bool_;
43 std::vector<int32_t> values_int32_;
44 std::vector<double> values_double_;
45 std::vector<std::string> values_string_;
48 std::vector<char *> new_argv_;
std::string & string_ref(const std::string &name)
Definition: flags.cpp:134
bool register_int32_flag(const std::string &name, int32_t default_value=0, std::string help_message="")
Definition: flags.cpp:26
bool has_flag(const std::string &name) const
Definition: flags.cpp:114
std::string help() const
Definition: flags.cpp:140
bool register_double_flag(const std::string &name, double default_value=0.0, std::string help_message="")
Definition: flags.cpp:33
bool register_string_flag(const std::string &name, std::string default_value="", std::string help_message="")
Definition: flags.cpp:40
bool parse_flags(int argc, char ***argv)
parse command line and remove registered flags
Definition: flags.cpp:47
bool register_bool_flag(const std::string &name, bool default_value=false, std::string help_message="")
Definition: flags.cpp:19
int32_t & int32_ref(const std::string &name)
Definition: flags.cpp:122
double & double_ref(const std::string &name)
Definition: flags.cpp:128
bool bool_ref(const std::string &name)
Definition: flags.cpp:116
Definition: algorithm.h:10