28#ifndef __CMD_ARGUMENTS__
29#define __CMD_ARGUMENTS__
60 return getArg<T>(
name, value, isFatal);
74 T
getArg(
const std::string
name, T default_value,
bool isFatal =
false) {
75 T value = default_value;
77 value = this->arg<T>(
name);
80 std::ostringstream exe;
81 exe <<
"Fatal: argument \"";
83 exe <<
"\" not found!";
87 std::ostringstream warn;
89 warn <<
"Warning: argument \"";
91 warn <<
"\" not found! Using default value (";
92 warn << default_value;
95 std::cout << warn.str() << std::flush;
106 std::ostringstream oss;
111 "Argument '" +
name +
"' exists");
119 std::ostringstream oss;
164 void split(std::string&
name, std::string& value, std::string
arg);
178 std::map<std::string, std::string>::iterator it =
arguments_.find(
name);
189inline std::string CmdArguments::arg<std::string>(
const std::string
name) {
190 std::map<std::string, std::string>::iterator it = arguments_.find(
name);
191 if (it != arguments_.end()) {
192 return arguments_[
name];
std::shared_ptr< CmdArguments > CmdArguments_t
constexpr char BoldMagenta[]
void split(std::string &name, std::string &value, std::string arg)
helper to split string
std::set< std::string > warned_
T arg(const std::string name)
std::map< std::string, std::string > arguments_
container for storing command line options
unsigned int getNumArguments() const
void addArguments(int argc, char **argv)
parse user arguments
T getArg(const std::string name, T default_value, bool isFatal=false)
char ** getArguments() const
void addArgument(const std::string &name, const T &value)
T getArg(const std::string name, bool isFatal=false)
CmdArguments(int argc, char **argv)
void replaceArgument(const std::string &name, const T &value)