Refactor some of the configuration file handling code. Make it easier to get the actual file that was processed, and allow extras in the config file to be ignored (default now), captured or errored.
fix std::error reference and formatting
add test for required but no default and fix a shadow warning on 'required' from gcc 4.8
Test correctness of config write-read loop
fix config generation for flag definitions
make the config output conform with toml
continue work on the config file interpretation and construction
get all the ini tests working again with the cleaned up features.
update formatting
rename IniTest to ConfigFileTest to better reflect actual tests and add a few more test of the configTOML
disambiguate enable/disable by default to an enumeration, and to make room for a configurable option to allow subcommands to be triggered by a config file.
add a ConfigBase class to generally reflect a broader class of configuration files formats of similar nature to INI files
add configurable to app and allow it to trigger subcommands
add test of ini formatting
add section support to the config files so sections can be opened and closed and the callbacks triggered as appropriate.
add handling of option groups to the config file output
add subcommand and option group configuration to config file output
subsubcom test on config files
fix a few sign comparison warnings and formatting
start working on the book edits for configuration and a few more tests
more test to check for subcommand close in config files
more tests for coverage
generalize section opening and closing
add more tests and some fixes for different configurations
yet more tests of different situations related to configuration files
test more paths for configuration file sections
remove some unused code and fix some codacy warnings
update readme with updates from configuration files
more book edits and README formatting
remove extra space
Apply suggestions from code review
Co-Authored-By: Henry Schreiner <HenrySchreinerIII@gmail.com>
fix some comments and documentation
fix spacing
Rename size_t -> std::size_t
Fix compiler warnings with -Wsign-conversion
Fix new warnings with -Wsign-conversion in PR
* 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
* 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)