Skip to content

Commit

Permalink
Upgrade to latest version of option parser
Browse files Browse the repository at this point in the history
  • Loading branch information
Znort987 committed Nov 15, 2015
1 parent 2560dc3 commit 847c58f
Show file tree
Hide file tree
Showing 2 changed files with 14 additions and 0 deletions.
12 changes: 12 additions & 0 deletions option.cpp
Expand Up @@ -305,6 +305,18 @@ Values& OptionParser::parse_args(const vector<string>& v) {
_values[it->dest()] = it->get_default();
}

for (list<OptionGroup const*>::iterator group_it = _groups.begin(); group_it != _groups.end(); ++group_it) {
for (strMap::const_iterator it = (*group_it)->_defaults.begin(); it != (*group_it)->_defaults.end(); ++it) {
if (not _values.is_set(it->first))
_values[it->first] = it->second;
}

for (list<Option>::const_iterator it = (*group_it)->_opts.begin(); it != (*group_it)->_opts.end(); ++it) {
if (it->get_default() != "" and not _values.is_set(it->dest()))
_values[it->dest()] = it->get_default();
}
}

return _values;
}

Expand Down
2 changes: 2 additions & 0 deletions option.h
Expand Up @@ -141,6 +141,8 @@ class OptionParser {
OptionParser& set_defaults(const std::string& dest, const std::string& val) {
_defaults[dest] = val; return *this;
}
template<typename T>
OptionParser& set_defaults(const std::string& dest, T t) { std::ostringstream ss; ss << t; _defaults[dest] = ss.str(); return *this; }
OptionParser& enable_interspersed_args() { _interspersed_args = true; return *this; }
OptionParser& disable_interspersed_args() { _interspersed_args = false; return *this; }
OptionParser& add_option_group(const OptionGroup& group);
Expand Down

0 comments on commit 847c58f

Please sign in to comment.