Commit d7271eda80e19185c80418270675e02cd26f7a20
1 parent
2fd9ab63
add vectors
Showing
2 changed files
with
16 additions
and
3 deletions
src/cxxopts.hpp
| @@ -52,6 +52,15 @@ namespace cxxopts | @@ -52,6 +52,15 @@ namespace cxxopts | ||
| 52 | } | 52 | } |
| 53 | 53 | ||
| 54 | template <typename T> | 54 | template <typename T> |
| 55 | + void | ||
| 56 | + parse_value(const std::string& text, std::vector<T>& value) | ||
| 57 | + { | ||
| 58 | + T v; | ||
| 59 | + parse_value(text, v); | ||
| 60 | + value.push_back(v); | ||
| 61 | + } | ||
| 62 | + | ||
| 63 | + template <typename T> | ||
| 55 | struct value_has_arg | 64 | struct value_has_arg |
| 56 | { | 65 | { |
| 57 | static constexpr bool value = true; | 66 | static constexpr bool value = true; |
src/main.cpp
| @@ -36,7 +36,7 @@ int main(int argc, char* argv[]) | @@ -36,7 +36,7 @@ int main(int argc, char* argv[]) | ||
| 36 | options.add_options() | 36 | options.add_options() |
| 37 | ("a,apple", "an apple") | 37 | ("a,apple", "an apple") |
| 38 | ("b,bob", "Bob") | 38 | ("b,bob", "Bob") |
| 39 | - ("f,file", "File", cxxopts::value<std::string>()) | 39 | + ("f,file", "File", cxxopts::value<std::vector<std::string>>()) |
| 40 | ("positional", "Positional arguments", cxxopts::value<std::string>()) | 40 | ("positional", "Positional arguments", cxxopts::value<std::string>()) |
| 41 | ; | 41 | ; |
| 42 | 42 | ||
| @@ -56,8 +56,12 @@ int main(int argc, char* argv[]) | @@ -56,8 +56,12 @@ int main(int argc, char* argv[]) | ||
| 56 | 56 | ||
| 57 | if (options.count("f")) | 57 | if (options.count("f")) |
| 58 | { | 58 | { |
| 59 | - std::cout << "File = " << options["f"].as<std::string>() | ||
| 60 | - << std::endl; | 59 | + auto& ff = options["f"].as<std::vector<std::string>>(); |
| 60 | + std::cout << "Files" << std::endl; | ||
| 61 | + for (const auto& f : ff) | ||
| 62 | + { | ||
| 63 | + std::cout << f << std::endl; | ||
| 64 | + } | ||
| 61 | } | 65 | } |
| 62 | 66 | ||
| 63 | if (options.count("help")) | 67 | if (options.count("help")) |