* add a variant of the string conversions for the default string operations. Discriminate between the is_convertible and is_constructible type traits for object.
* update the test to test the different situations with the funny string like type
* work on the flags book chapter and making sure the values are initialized properly.
* Fix initialization of values used in flags or options
* update some formatting and more brace initialization
* update more formatting and fix a incorrect initializer
* more formatting and some error fixes
* more formatting
* Small formatting fix
Co-authored-by: Henry Schreiner <HenrySchreinerIII@gmail.com>
* Add cpplint config file
* Add cpplint to CI
* Add checks
* Add docker container tag
* Unindent container
As suggested in code review
Co-Authored-By: Henry Schreiner <HenrySchreinerIII@gmail.com>
* Fix cpplint issues
* Fix clang-format
* Include and fix modern cpplint runtime/int
* Include and fix cpplint build/include_order
* Revert "Include and fix cpplint build/include_order"
This reverts commit bddb6a2d6744c5397f387ccd03416a1ec5e29862.
* Update explanation, sort alphabetically
* Implement suggestion from code review
Co-Authored-By: Henry Schreiner <HenrySchreinerIII@gmail.com>
* Include cstdint header, prefix its symbols with std::
* Forgot std::
Co-authored-by: Henry Schreiner <HenrySchreinerIII@gmail.com>
* Add std checking and try to fix filesystem being used on macOS 10.14
* Adding extra check recommeded by @phlptp
* suppress the double to int warning in msvc 2019 in the optional test
Co-authored-by: Philip Top <top1@llnl.gov>
* Make CI fail with readability-container-size-empty flag
* Make CI fail with cppcoreguidelines-owning-memory flag
* Add all google checks, exclude specific ones
* Apply clang-tidy fixes
* Make timer constructors explicit
* Add check for unscoped namespaces
* Replace unscoped namespace by using-declaration
* Replace unscoped namespace by using-declaration
* 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>
* Fix invalid callback calls for default_val Option function. the update adds a flag variable to control it, makes default_val exception safe and a template to convert from actual value types.
* update readme and fix some compilation issues on older compilers
* revert README.md with mistake erasures
* Update README.md
Co-authored-by: Henry Schreiner <HenrySchreinerIII@gmail.com>
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 @henryiii as a contributor
* 📝 Add @phlptp as a contributor
* 📝 Add @cbachhuber as a contributor
* 📝 Add @lambdafu as a contributor
* 📝 Update @lambdafu as a contributor
* 📝 Update @lambdafu as a contributor
* 📝 Add @SkyToGround as a contributor
* 📝 Add @dvj as a contributor
* 📝 Add @lczech as a contributor
* 📝 Add @rafiw as a contributor
* 📝 Add @mensinda as a contributor
* 📝 Add @jbriales as a contributor
* 📝 Update @jbriales as a contributor
* 📝 Add @seanfisk as a contributor
* 📝 Add @fpeng1985 as a contributor
* 📝 Add @almikhayl as a contributor
* 📝 Add @andrew-hardin as a contributor
* 📝 Add @SX91 as a contributor
* 📝 Add @helmesjo as a contributor
* 📝 Add @skannan89 as a contributor
* 📝 Add @kraj as a contributor
* 📝 Add @mogigoma as a contributor
* 📝 Add @msoeken as a contributor
* 📝 Add @nathanhourt as a contributor
* 📝 Add @pleroux0 as a contributor
* 📝 Add @chfast as a contributor
* Fixes
* 📝 Add @peterazmanov as a contributor
* 📝 Add @delpinux as a contributor
* 📝 Add @metopa as a contributor
* Contributing guide
* 📝 Add @ChristosT as a contributor
* 📝 Add @deining as a contributor
* 📝 Add @elszon as a contributor
* 📝 Add @ncihnegn as a contributor
* 📝 Add @nurelin as a contributor
* 📝 Add @ryan4729 as a contributor
* Remove extra parts
* More cleanup
* Instructions added
* add a cmakeLists for the book to add a project in visual studio so the book can be edited with the code
* remove trailing whitespace
* remove restrictions on MSVC and use a globbing expression in finding the files. Also add a check to make sure book directory exists which seems to be important on appveyor
* apparently doxygen was updated and the old download script no longer worked
* try a different url for the older download
* use github source tar
* Bug fix for issue 369. The default_val call was not resetting the option state after it had executed the callback and reset the results vector, allowing the possibility of an empty results getting passed to some conversions functions.
* add the source and attribution of the new test
* update formatting
* add ability to specify deprecated or retired options.
* add retired example and tests
* update some formatting and a few more test executions
* fix formatting on retired.cpp
* add another test to fill coverage gap for existing options that are being retired.
* add example comments
* Update readme with the descriptions of the new helper functions
* fix space on readme
* Apply suggestions from code review
Co-Authored-By: Christoph Bachhuber <cbachhuber89@gmail.com>
* add some flags to the code coverage report and update some names and add more descriptions to deprecated options
* update formatting on App
* allow transform to work with arrays. The element_type trait required pointer_traits<T> to be defined for the type which it was for vector but not for array due to decay rules in C++, even though it was not used. So Element type had to be split into two templates instead of a conditional.
* fix formatting
* clean up array initialization
* add constexpr array test
* add extra braces to make clang happy