diff --git a/OptionParser.h b/OptionParser.h index ccafbc5..fb80b93 100644 --- a/OptionParser.h +++ b/OptionParser.h @@ -61,6 +61,8 @@ class Values { bool is_set_by_user(const std::string& d) const { return _userSet.find(d) != _userSet.end(); } void is_set_by_user(const std::string& d, bool yes); Value get(const std::string& d) const { return (is_set(d)) ? Value((*this)[d]) : Value(); } + template + T get(const std::string& d) const { return (is_set(d)) ? Value((*this)[d]) : T(); } typedef std::list::iterator iterator; typedef std::list::const_iterator const_iterator; diff --git a/testprog.cpp b/testprog.cpp index ac68f1f..397dcf4 100644 --- a/testprog.cpp +++ b/testprog.cpp @@ -141,7 +141,8 @@ int main(int argc, char *argv[]) cout << "k: " << options["k"] << endl; cout << "verbosity: " << options["verbosity"] << endl; cout << "number: " << (int) options.get("number") << endl; - cout << "int: " << (int) options.get("int") << endl; + // test template getter + cout << "int: " << options.get("int") << endl; cout << "float: " << (float) options.get("float") << endl; complex c = 0; if (options.is_set("complex")) {