From 7c468aaf68206f0f05fcf6c436ed274da138bdbc Mon Sep 17 00:00:00 2001 From: Jarryd Beck Date: Thu, 5 Jul 2018 18:21:26 +1000 Subject: [PATCH] Allow iterator inputs to parse_positional --- CHANGELOG.md | 4 ++++ include/cxxopts.hpp | 6 ++++++ test/options.cpp | 4 +++- 3 files changed, 13 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 438db2b..8801f85 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,6 +9,10 @@ options. The project adheres to semantic versioning. * Allow integers to have leading zeroes. +### Added + +* Iterator inputs to `parse_positional`. + ### Bug Fixes * Fix a warning about possible loss of data. diff --git a/include/cxxopts.hpp b/include/cxxopts.hpp index 562bef3..c3dd458 100644 --- a/include/cxxopts.hpp +++ b/include/cxxopts.hpp @@ -1255,6 +1255,12 @@ namespace cxxopts void parse_positional(std::initializer_list options); + template + void + parse_positional(Iterator begin, Iterator end) { + parse_positional(std::vector{begin, end}); + } + std::string help(const std::vector& groups = {""}) const; diff --git a/test/options.cpp b/test/options.cpp index 044d42b..a204079 100644 --- a/test/options.cpp +++ b/test/options.cpp @@ -145,7 +145,9 @@ TEST_CASE("All positional", "[positional]") auto argc = av.argc(); auto argv = av.argv(); - options.parse_positional({"positional"}); + std::vector pos_names = {"positional"}; + + options.parse_positional(pos_names.begin(), pos_names.end()); auto result = options.parse(argc, argv); -- libgit2 0.21.4