20 for (
int i = 0 ; i < argc ; ++i) {
21 m_argv.emplace_back(argv[i]);
28 for (std::size_t i = 0 ; i <
m_argv.size() ; ++i) {
30 if (
m_argv[i] == it.second.longName || (!it.second.shortName.empty() &&
m_argv[i] == it.second.shortName)) {
31 it.second.isFound =
true;
32 if (it.second.hasParameter && i + 1 <
m_argv.size())
33 it.second.parameter =
m_argv[i + 1];
43 std::cout <<
"Available options:" << std::endl;
45 std::cout <<
" " << it.second.longName <<
"/" << it.second.shortName << std::endl;
49 DEBUG(
"========== ARGS ==========");
51 DEBUG(it.second.longName,
"/", it.second.shortName,
"=", it.second.isFound);
52 DEBUG(
"==========================");
ArgumentParser(int argc, char **argv)
const Argument & getArgument(const std::string &name)
std::vector< std::string > m_argv
std::unordered_map< std::string, Argument > m_arguments
void addArgument(const std::string &name, const Argument &argument)