1 #ifndef __CMD_ARGUMENTS__
2 #define __CMD_ARGUMENTS__
10 #include "boost/smart_ptr.hpp"
11 #include "boost/algorithm/string.hpp"
12 #include "boost/utility/value_init.hpp"
45 boost::value_initialized<T> value;
46 return getArg<T>(
name, value, isFatal);
60 T getArg(
const std::string
name,
T default_value,
bool isFatal =
false) {
61 T value = default_value;
63 value = this->arg<T>(
name);
66 std::ostringstream exe;
67 exe <<
"Fatal: argument \"";
69 exe <<
"\" not found!";
73 std::ostringstream
warn;
74 warn <<
"\033[01;35m";
75 warn <<
"Warning: argument \"";
77 warn <<
"\" not found! Using default value (";
78 warn << default_value;
81 std::cout << warn.str() << std::flush;
92 std::ostringstream oss;
97 "Argument '" + name +
"' exists");
100 arguments_.insert(std::make_pair(name, oss.str()));
105 std::ostringstream oss;
109 arguments_.insert(std::make_pair(name, oss.str()));
151 void split(std::string &
name, std::string &value, std::string
arg);
constexpr double e
The value of .
CmdArguments(int argc, char **argv)
boost::shared_ptr< CmdArguments > CmdArguments_t
std::set< std::string > warned_
T getArg(const std::string name, T default_value, bool isFatal=false)
T getArg(const std::string name, bool isFatal=false)
void replaceArgument(const std::string &name, const T &value)
T arg(const std::string name)
void addArguments(int argc, char **argv)
parse user arguments
Parsing command line arguments.
void split(std::string &name, std::string &value, std::string arg)
helper to split string
std::map< std::string, std::string > arguments_
container for storing command line options
char ** getArguments() const
unsigned int getNumArguments() const
std::string::iterator iterator
void addArgument(const std::string &name, const T &value)
Inform & endl(Inform &inf)