CLIUtils/CLI11: ## Version 2.2: Option and Configuration Flexibility
Creators
- Henry Schreiner1
- Philip Top2
- Christoph Bachhuber3
- Marcus Brinkmann
- Jonas Nilsson4
- Doug Johnston
- Lucas Czech5
- Rafi Wiener6
- Andreas Deininger
- Andrew Hardin7
- Daniel Mensinger
- Jesus Briales8
- Sam Hocevar9
- Sean Fisk10
- fpeng1985
- ayum
- Alex Dewar11
- Anton
- Benjamin Beichler12
- D. Fleury
- Dan Barowy13
- Dominik Steinberger
- Eli Schwartz
- Fred Helmesjö
- Isabella Muerte
- Jakob Lover14
- James Gerity15
- 1. Princeton University
- 2. @LLNL
- 3. Luminar Technologies
- 4. European Spallation Source
- 5. Carnegie Institution for Science
- 6. Mellanox
- 7. Sandia National Laboratories
- 8. University of Malaga, @MRPT
- 9. @dontnod
- 10. @vmware
- 11. University of Sussex
- 12. Universität Rostock
- 13. Williams College
- 14. @NordicSemiconductor
- 15. @neurala
Description
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::atomic<int>
or 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.
- Add
MultiOptionPolicy::Sum
and refactor theadd_flag
to fix a bug when usingstd::optional<bool>
as type. #709 - Add support for an empty vector result in TOML and as a default string. #660
- Add
.validate_optional_arguments()
to support discriminating positional arguments from vector option arguments. #668 - Add
CLI::FileOnDefaultPath
to check for files on a specified default path. #698 - Change default value display in help messages from
=XXXX
to[XXXXX]
to make it clearer. #666 - Modify the Range Validator to support additional types and clean up the error output. #690
- Bugfix: The trigger on parse modifier did not work on positional argument.s #713
- Bugfix: The single header file generation was missing custom namespace generation. #707
- Bugfix: Clean up File Error handling in the argument processing. #678
- Bugfix: Fix a stack overflow error if nameless commands had fallthrough. #665
- Bugfix: A subcommand callback could be executed multiple times if it was a member of an option group. #666
- Bugfix: Fix an issue with vectors of multi argument types where partial argument sets did not result in an error. #661
- Bugfix: Fix an issue with type the template matching on C++20 and add some CI builds for C++20. #663
- Bugfix: Fix typo in C++20 detection on MSVC. #706
- Bugfix: An issue where the detection of RTTI being disabled on certain MSVC platforms did not disable the use of dynamic cast calls. #666
- Bugfix: Resolve strict-overflow warning on some GCC compilers. #666
- Backend: Add additional tests concerning the use of aliases for option groups in config files. #666
- Build: Add support for testing in meson and cleanup symbolic link generation. #701, #697
- Build: Support building in WebAssembly. #679
Files
CLIUtils/CLI11-v2.2.0.zip
Files
(351.4 kB)
Name | Size | Download all |
---|---|---|
md5:57a934aec44c0223ce2f9fa78b40cf71
|
351.4 kB | Preview Download |
Additional details
Related works
- Is supplement to
- https://github.com/CLIUtils/CLI11/tree/v2.2.0 (URL)