Software Open Access
Henry Schreiner; Philip Top; Christoph Bachhuber; Marcus Brinkmann; Jonas Nilsson; Doug Johnston; Lucas Czech; Rafi Wiener; Andreas Deininger; Andrew Hardin; Daniel Mensinger; Jesus Briales; Sam Hocevar; Sean Fisk; fpeng1985; ayum; Alex Dewar; Anton; Benjamin Beichler; D. Fleury; Dan Barowy; Dominik Steinberger; Eli Schwartz; Fred Helmesjö; Isabella Muerte; Jakob Lover; James Gerity
New features include support for output of an empty vector, a summing option policy that can be applied more broadly, and an option to validate optional arguments to discriminate from positional arguments. A new validator to check for files on a default path is included to allow one or more default paths for configuration files or other file arguments. A number of bug fixes and code cleanup for various build configurations. Clean up of some error outputs and extension of existing capability to new types or situations.
There is a possible minor breaking change in behavior of certain types which wrapped an integer, such as
std::optional<int> when used in a flag. The default behavior is now as a single argument value vs. summing all the arguments. The default summing behavior is now restricted to pure integral types, int64_t, int, uint32_t, etc. Use the new
sum multi option policy to revert to the older behavior. The summing behavior on wrapper types was not originally intended.
MultiOptionPolicy::Sumand refactor the
add_flagto fix a bug when using
std::optional<bool>as type. #709
.validate_optional_arguments()to support discriminating positional arguments from vector option arguments. #668
CLI::FileOnDefaultPathto check for files on a specified default path. #698
[XXXXX]to make it clearer. #666