* add an example where the name of the enum is printed through a stream output function, which subverted the checkTransformer conversion and prevented conversion of the enumeration.
* add missing 'typename'
* try a simpler version of the value_string using const reference for all overloads
* use auto return type to match to_string return type in value_string
* remove extra spaces
* fix https://github.com/CLIUtils/CLI11/issues/328
* use same assumptions about the size (ie double is enough) as in Number validator
* fix spelling in error message
* fix class description comment
* PositiveNumber accepts now >0 while NonNegative >=0
* update README for PositiveNumber and NonNegativeNumber
* spelling
* add checks for files and directories so the code can be used in the config check
* add use of std::filesystem when available
* add some documentation
* try a verbatim section
* update formatting on validators
* update error call to use FileError::Missing
* add FileError test for invalid file
* format tweak
* add expanded type_size specification
* add some more checks for type_size_max
* continued work on getting type sizes more flexible
* make some more tweaks to option to split up validate and reduce sections
* git rid of exceptions on the type_size functions exceptions, allow any number to be entered for the min and max and don't make a distinction between flags and other types.
* add expected count
* add the allow extra args flag in an option
* start working in allow_extra_args
* write some stuff in the book, and continue working on the failing test cases
* fix a few more of the helpers tests
* a few more test cases running
* all tests pass, fixing calls in ini files
* get vector<pair> working and all tests passing
* change callback to use reference to remove allocation and copy operation
* add support and test for vector<vector<X>>
* change Validators_ to validators_ for consistency
* fix linux warnings and errors by reording some templates and adding some typename keywords
* add support for std::vector<X> as the cross conversion type so optional<std::vector<X>> is supported using the full template of add_option.
* a few more test cases to take care of some coverage gaps
* add missing parenthesis
* add some more tests for coverage gaps
* add test for flag like option
* add transform test for `as<X>` function and make it pass through the defaults
* add a few more tests and have vector default string interpreted correctly.
* add test for defaulted integer, and route default string for defaulted value which would otherwise be empty
* some code cleanup and comments and few more test coverage gap tests
* add more tests and fix a few bugs on the type size and different code paths
* remove path in results by fixing the clear of options so they go back to parsing state.
* get coverage back to 100%
* clang_tidy, and codacy fixes
* reorder the lexical_conversion definitions
* update some formatting
* update whitespace on book chapter
After https://github.com/CLIUtils/CLI11/pull/329 the get_options version being used in the test was the non-const.
Forced testing on non-const by using a const-ref to the app.
Also added testing to ensure the list of options of both const and non-const are the same as expected.
* add a needs method to the app/subcommand
* add some needs subcommand tests
* add a few more subcommand tests for needs and alias
* fix shadow warnings
* add some tests of the error pathways and fix a few anomalous conditions on the Option excludes function
* add needs and alias functions in the readme
* add some tests of ignore_case and underscore with the alias operations
* add a few more test cases for needs option groups
* add callback tests with needs and add a few comments in the readme
* update formatting
* add error checks on the aliases and restrictions on valid names for subcommands and aliases
* add checks for matching subcommands and improve error return values to include the offending name
* add some tests of the alias errors
* add some more tests to check subcommand name matching during addition
* add some additional tests and remove a redundant chunk of codes
* add some more checks of subcommand name overlap in option_groups
* allow disabled subcommand to bypass name matching check
Adding pre-commit files
GitHub actions, and Python 3 on Travis
Fix missing pip
Adding pre-commit instructions
Using bionic
Fix
Drop extra parts, add pip
Setuptools
* fix signed mismatch
add test from readme about callbacks
update callback documentation,
add a subbcommand immediate_callback test
add third callback and readme update
* a few more updates to the readme on `immediate_callback`
* Apply suggestions from code review
Co-Authored-By: Henry Schreiner <HenrySchreinerIII@gmail.com>
remove restrictions on tuple size, and add some additional tests and modified documentation
fix some issues with the negative number check
add some test for indexed validation on tuple
allow specific validators for specific elements in a type with multiple values, or to just apply to the last given argument
fix incorrect parenthesis
update some clang-tidy fixes mainly else after return but a few conversions from into to bool
add extra newline before footer
add an extra field to the extra Error
add a footer callback for help operations
* add some tests with default capture on the two parameter template and some notes about it in the README.md
remove the test from visual studio 2015
vs2015 doesn't seem to properly deal with is_assignable in the cases we care about so make a standalone version that is more direct in what we are doing
add version to appveyor and add some notes to the readme
fix a few test cases to make sure code is covered and test a few other paths
remove unneeded enum streaming operator
add some diagnostic escapes around trait code to eliminate gcc Wnarrowing warnings
work specification of the template operations
remove optional add some templates for options conversions
add the two parameter template for add_option
* Fix some comments from Code review and add more description
* start work on trying to clean up the type traits for which lexical cast overload to use
* fix readme issue and make the condition tests a little clearer
* add a check for out of range errors on boolean conversions
* Fix capitalization and some comments on option functions
* Allow immediate_callback on the main app to run the main app callback prior to named subcommand callbacks, and reflect this change in the a new test and docs.
* add a is_tuple_like trait, and type_count structure for getting the number of elements to require
* add lexical conversion functions for tuples and other types
* remove the separate vector option and option function
* test out the type names for tuples
* add some more lexical conversion functions and test
* more work on tuples and tests
* fix some merge warnings
* fix some typename usage and c++14 only constructs
* tweak some of the template to remove undefined references
* add extra static assert about is_tuple_like
* fix some undefined references in clang
* move around some of the type_count templates to be used in the type_name functions
* move the type_count around and add some additional checks on the classification
* add some info to the readme
* add a check loop for missing required positional, when the number of arguments get small.
* fix a few warnings on signed/unsigned checks
* add check for a required positional vector.
This cleans up the type checking a bit and makes it more readable, along with some other cleanup.
* start work on trying to clean up the type traits for which lexical cast overload to use
* fix readme issue and make the condition tests a little clearer
* add a check for out of range errors on boolean conversions
* Fix capitalization and some comments on option functions
* fix a few code analysis warnings for VS2019
* change the checked_multiply function to not use undefined behavior to check for potential undefined behavior and wrapping.
* update the checked_multiply template to deal with mismatched sign in signed numbers and min val correctly. This involved adding to templates to clear up warnings
* add some tests with default capture on the two parameter template and some notes about it in the README.md
remove the test from visual studio 2015
vs2015 doesn't seem to properly deal with is_assignable in the cases we care about so make a standalone version that is more direct in what we are doing
add version to appveyor and add some notes to the readme
fix a few test cases to make sure code is covered and test a few other paths
remove unneeded enum streaming operator
add some diagnostic escapes around trait code to eliminate gcc Wnarrowing warnings
work specification of the template operations
remove optional add some templates for options conversions
add the two parameter template for add_option
* Fix some comments from Code review and add more description
* fix case when string_view doesn't work to append to a string.
* This PR also addressed #300
* modify lexical_cast to take const std::string &, instead of by value to allow string_view in a few cases
* meson: Basic meson support
With this patch, CLI11 can be used as a meson
subproject: http://mesonbuild.com/Subprojects.html
However, CMake is still required for testing and
installation. The current meson.build is not a
complete replacement.
* meson: Added meson test
* Adding Azure test
* Allow immediate_callback on the main app to run the main app callback prior to named subcommand callbacks, and reflect this change in the a new test and docs.
* Update README.md
Co-Authored-By: Henry Schreiner <HenrySchreinerIII@gmail.com>
* Fixing some warnings
* Make gtest a system library
* Fixing format
* Adding better method for adding warnings
* Nicer Windows deprecated test
* JSON update and drop testing timer
* Warnings as errors everywhere
* [WIP] Initial implementation
* Add mapping validation
* More documentation
* Add support for floats in checked_multiply and add tests
* Place SuffixedNumber declaration correctly
* Add tests
* Refactor SuffixedNumber
* Add as size value
* Update README
* SFINAE for checked_multiply()
* Mark ctors as explicit
* Small fixes
* Clang format
* Clang format
* Adding GCC 4.7 support
* Rename SuffixedNumber to AsNumberWithUnit
* 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
* Start adding a description of the various examples to the README
* add an examples segment to the readme describing the different examples
* add a reserve operation when constructing vector from argc and argv
* 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)