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);