Based on #1242, I don't think this is required but it does remove that
issue and checking on compiler explore it does simplify the generated
code.
---------
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
update readme, changelog, and version for 2.5 release
---------
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: Henry Schreiner <HenrySchreinerIII@gmail.com>
Fix docstring related to #1052
Fix config_to_string with defaults #1007
---------
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
This PR adds a mechanism to hide groups but have their options visible
as part of the parent.
This works for option group names starting with a '+'
for example
```
CLI::App app;
bool flag = false;
std::optional<bool> optional_flag = std::nullopt;
app.add_option("--tester");
auto *m1=app.add_option_group("+tester");
m1->add_option("--flag", flag, "description");
m1->add_option("--optional_flag", optional_flag, "description");
CLI11_PARSE(app,argc, argv);
```
will produce help as
```txt
Options:
-h,--help Print this help message and exit
--tester
--flag BOOLEAN description
--optional_flag BOOLEAN description
```
instead of
```
Options:
-h,--help Print this help message and exit
--tester
[Option Group: tester]
Options:
--flag BOOLEAN description
--optional_flag BOOLEAN description
```
Fixes issue #1034 and a few other past issues or questions
---------
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Prepare for release.
---------
Signed-off-by: Henry Schreiner <henryschreineriii@gmail.com>
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: Philip Top <phlptp@gmail.com>
Quick release fixing the missing header.
---------
Signed-off-by: Henry Schreiner <henryschreineriii@gmail.com>
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: Philip Top <phlptp@gmail.com>
* Update readme and changelog and version number
* style: pre-commit.ci fixes
* fix missing references
* style: pre-commit.ci fixes
* merge in changes from non existent 2.1.3 patch release
* Update CHANGELOG.md
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: Henry Schreiner <HenrySchreinerIII@gmail.com>
Co-authored-by: Henry Schreiner <henry.fredrick.schreiner@cern.ch>
* add a few tests related to github issues
* change how the default is displayed in the help message prev was =XXXX, this was confusing in some cases particularly with flags or with multiple option names. Now is [default=XXXX] which makes it clearer what the value represents.
* Try to fix RTTI issue
* style: pre-commit.ci fixes
* Fix subcommand callbacks being called multiple times if in an option group
* style: pre-commit.ci fixes
* remove extra group call
* change [default=XXXXD] to just [XXXXX] for the default specification
* update changelog
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
* docs: changelog update
* docs: prepare for 2.1
* Apply suggestions from code review
Co-authored-by: Philip Top <top1@llnl.gov>
Co-authored-by: Philip Top <top1@llnl.gov>
* Update changelog
[skip ci]
* Use code for maintainers instead
* Generate file with GitHub Actions
* Apply suggestions from code review
Co-Authored-By: Philip Top <phlptp@gmail.com>
* Adding default val and combine one line
Co-authored-by: Philip Top <top1@llnl.gov>
* build-testing better supported
* Add formatting to Azure
* Adding more jobs to Azure
* Control
* Allow libc++ to be used on linux
* Fix modernize message
* Fix variable
* fixup! Fix modernize message
* Drop auto exp. optional
* Update readme, better user id in docker
* Fix BUILD_TESTING
* Drop format from travis, leave tidy for now
* Check tidy and format
* Tidy fully on Azure now
* First streaming version
* Using to_string instead
* Switching to new backend
* Moving to capture function for defaults
* Rename capture_default + _str
* defaultval -> default_str, added always_capture_default
* Fix style
* Adding tests and docs to readme
* Dropping macOS on Travis (supported through Azure)
* Adding first draft of Sets
Use IsMember now
Using IsMember as backend for Set
Non-const validator backend
Move set tests to set
Clearer inits
* Drop shortcut
Tighten up classes a bit for MSVC
Check with GCC 4.8 too
* Simpler templates, but more of them
Dropping more type safety for older compilers
Shortcut string set
* Adding shortcut init
Making g++ 4.7 docker image happy
Fix Clang tidy issue with last commit
Adding one more shortcut, adding a couple of tests
* Dropping dual pointer versions of code
* Smarter shortcut syntax
* Adding slighly faster choices
* Cleanup to make InMember simpler
* Drop choices for now, adding some tests
* ValidationError is now always the error from a validator
* Support for other types of initializer lists, including enums
* Factor out type utilities, single version of IsMember code
* Adding a few tests for #224
* Minor cleanup for Validation Error
* Adding tests, moved deprecated tests
* Docs updates