diff --git a/src/cxxopts.hpp b/src/cxxopts.hpp index 6390e2c..c684aec 100644 --- a/src/cxxopts.hpp +++ b/src/cxxopts.hpp @@ -52,6 +52,15 @@ namespace cxxopts } template + void + parse_value(const std::string& text, std::vector& value) + { + T v; + parse_value(text, v); + value.push_back(v); + } + + template struct value_has_arg { static constexpr bool value = true; diff --git a/src/main.cpp b/src/main.cpp index de4fe73..45b840a 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -36,7 +36,7 @@ int main(int argc, char* argv[]) options.add_options() ("a,apple", "an apple") ("b,bob", "Bob") - ("f,file", "File", cxxopts::value()) + ("f,file", "File", cxxopts::value>()) ("positional", "Positional arguments", cxxopts::value()) ; @@ -56,8 +56,12 @@ int main(int argc, char* argv[]) if (options.count("f")) { - std::cout << "File = " << options["f"].as() - << std::endl; + auto& ff = options["f"].as>(); + std::cout << "Files" << std::endl; + for (const auto& f : ff) + { + std::cout << f << std::endl; + } } if (options.count("help"))