0.4.0 - 2021-12-05 ================== This release contains a major interface-change (at least compared to the 0.3.x- or 0.2.x-series): The interface of the `clapp::value::found_func_t::func_t`-callback was changed from `std::function<void()>` to `std::function<std::optional<exit_t>(const std::string &)>`. Thus, it supports an optional exit-value which is propagated down to the `parse()`- and `parse_and_validate()`-functions and can be used to determine if the program should exit or not. Note: also `basic_help_option_t` uses this mechanism and does not call `::exit()` or `::_exit()` anymore! Note: if a found-callback-func returns a value, the parsing-process gets interrupted. Thus, accessing members of the parser after the parsing was interrupted can lead to undefined behavior (you may use a parser-container like `basic_parser_container_t` to prevent this). Release 0.4.0 contains the following changes: --------------------------------------------- - Sub-parser example ([examples/sub_parser_example.cpp](examples/sub_parser_example.cpp)) uses a new intermediate parser. - Introduced new type `clapp::value::exit_t`. - Updated `clapp::value::found_func_t::func_t` to use `clapp::value::exit_t` and the name of the option/argument as parameter (`std::function<std::optional<exit_t>(const std::string &)>`). - Introduced parser-container `clapp::parser::basic_parser_container_t`: It can be used as a wrapper for a main-parser and ensures that the parser is not used if the parsing-process was interrupted by an exit-request of a found-function. - Any calls to `::exit()` or `::_exit()` were removed (not required anymore due to the new found-callback-interface). - Replaced internal implementation of `purpose_t`-stringification from `to_cstring()` to `to_string_view()`. - Added support for clang-tidy-13. - Several changes in gitlab-CI: (updated ubuntu 21.04 to 22.04, added debian 11 pipelines, added clang-11 and clang-12 to ubuntu 20.04) 0.3.1 - 2021-08-17 ================== This release uses the same interfaces (as in 0.3.0). It only fixes the documentation and the CMake-Build. Release 0.3.1 contains the following changes: --------------------------------------------- - fixed `doc/doc.md`. - fixed `README.md`. - fixed default CMAKE build-type. 0.3.0 - 2021-07-09 ================== This release uses (nearly everywhere) the same interfaces (as in 0.2.5) but changed the implementation under the hood. These changes are a preparation for future features of libClaPP (where options and parameters can be combined logically and grouped together). One of these exceptions where the behavior changed are non-param-options (i.e. `basic_option_t`), which were modified slightly. Just search for `basic_option_t` in the changes below. Release 0.3.0 contains the following changes: --------------------------------------------- - added support for leak sanitzier. - new Gitlab-CI-pipelines (added the following new architectures and OSs): * includes amd64 (debian 10, ubuntu 20.04, ubuntu 21.04) * includes arm64 (debian 10, ubuntu 20.04, ubuntu 21.04) * includes armhf (debian 10) - added support for clang- and gcc-compilers up to version 12 (however, C++17 is still a mandatory requirement). - moved clang-tidy build-options to `cmake/clang_tidy.cmake` (including a transition to clang-tidy-12 and several code-fixes newer clang-tidy-versions complained about). - moved compiler build-options to `cmake/compiler_flags.cmake`. - bump clang-format-7 to clang-format-11 (as clang-format-7 formatted code leads to `compound-token-split-by-space` warning in clang-12). - bump submodule `third_party/googletest` to version 1.11.0. - bump submodule `third_party/GSL` to version 3.1.0. - fixed documentation. - fixed and added new tests. - renamed test-names from snake-case to camel-case. (as suggested by google-test framework documentation) - updated help text generation. - type of `basic_option_t::_value` changed from `std::optional<T>` to `T`. - `operator bool()` of an `basic_option_t` now returns `_value != default_value` instead of the value returned by `has_value()`. 0.2.5-GSL3 - 2020-11-03 ======================= - Introduced support for GSL3. 0.2.5 - 2020-11-01 ================== - Added pedantic compiler option flag switch `libClaPP_PEDANTIC_COMPILER_FLAGS` to [CMakeLists.txt](CMakeLists.txt). 0.2.4 - 2020-05-13 ================== - Added `size_[argument|param_option]_t` and `ptrdiff_[argument|param_option]_t`. 0.2.3 - 2020-05-06 ================== - Added `bool_argument_t` and `bool_param_option_t`. 0.2.2 - 2020-05-04 ================== - Fixed package-config file to contain the right version number. 0.2.1 - 2020-05-04 ================== - Fixed cmake/sanitizer.cmake to be compliant to CMake prior version 3.12. 0.2.0 - 2020-04-12 ================== - bump version to 0.2.0 - updated README.md - added and updated several tests - added and updated doc - updated sample_extractor and added sample_executor - added clang-format specification - added support for sanitizers - added more exhaustive gitlab-pipeline - added more specific exceptions - updated help-message generation in parsers (sub_parser, main_parser and basic_parser) - minor improvements of CMakeLists.txt (e.g. added cppcheck) - renamed full_example to large_example - minor improvements to examples - added test examples scripts - added build_info_string - unified arguments and options 0.1.0 - 2020-01-28 ================== - new exceptions based on clapp::exception::clapp_exception. - added `parse_and_validate()` function. - added found-func - added help-option - added more constexpr - added more comments to examples - code cleanup - bump version to 0.1.0 - added gitlab-ci pipeline - added double/float values - added support for vector of short/long options - added doc-extractor