| # Changelog |
| |
| This is the changelog for `cxxopts`, a C++11 library for parsing command line |
| options. The project adheres to semantic versioning. |
| |
| ## 3.0 |
| |
| ### Changed |
| |
| * Only search for a C++ compiler in CMakeLists.txt. |
| * Allow for exceptions to be disabled. |
| * Fix duplicate default options when there is a short and long option. |
| * Add `CXXOPTS_NO_EXCEPTIONS` to disable exceptions. |
| * Fix char parsing for space and check for length. |
| * Change argument type in `Options::parse` from `char**` to `const char**`. |
| * Refactor parser to not change its arguments. |
| * `ParseResult` doesn't depend on a reference to the parser. |
| |
| ### Added |
| |
| * A list of unmatched arguments is available in `ParseResult`. |
| |
| ## 2.2 |
| |
| ### Changed |
| |
| * Allow integers to have leading zeroes. |
| * Build the tests by default. |
| * Don't check for container when showing positional help. |
| |
| ### Added |
| |
| * Iterator inputs to `parse_positional`. |
| * Throw an exception if the option in `parse_positional` doesn't exist. |
| * Parse a delimited list in a single argument for vector options. |
| * Add an option to disable implicit value on booleans. |
| |
| ### Bug Fixes |
| |
| * Fix a warning about possible loss of data. |
| * Fix version numbering in CMakeLists.txt |
| * Remove unused declaration of the undefined `ParseResult::get_option`. |
| * Throw on invalid option syntax when beginning with a `-`. |
| * Throw in `as` when option wasn't present. |
| * Fix catching exceptions by reference. |
| * Fix out of bounds errors parsing integers. |
| |
| ## 2.1.1 |
| |
| ### Bug Fixes |
| |
| * Revert the change adding `const` type for `argv`, because most users expect |
| to pass a non-const `argv` from `main`. |
| |
| ## 2.1 |
| |
| ### Changed |
| |
| * Options with implicit arguments now require the `--option=value` form if |
| they are to be specified with an option. This is to remove the ambiguity |
| when a positional argument could follow an option with an implicit value. |
| For example, `--foo value`, where `foo` has an implicit value, will be |
| parsed as `--foo=implicit` and a positional argument `value`. |
| * Boolean values are no longer special, but are just an option with a default |
| and implicit value. |
| |
| ### Added |
| |
| * Added support for `std::optional` as a storage type. |
| * Allow the help string to be customised. |
| * Use `const` for the type in the `argv` parameter, since the contents of the |
| arguments is never modified. |
| |
| ### Bug Fixes |
| |
| * Building against GCC 4.9 was broken due to overly strict shadow warnings. |
| * Fixed an ambiguous overload in the `parse_positional` function when an |
| `initializer_list` was directly passed. |
| * Fixed precedence in the Boolean value regex. |
| |
| ## 2.0 |
| |
| ### Changed |
| |
| * `Options::parse` returns a ParseResult rather than storing the parse |
| result internally. |
| * Options with default values now get counted as appearing once if they |
| were not specified by the user. |
| |
| ### Added |
| |
| * A new `ParseResult` object that is the immutable result of parsing. It |
| responds to the same `count` and `operator[]` as `Options` of 1.x did. |
| * The function `ParseResult::arguments` returns a vector of the parsed |
| arguments to iterate through in the order they were provided. |
| * The symbol `cxxopts::version` for the version of the library. |
| * Booleans can be specified with various strings and explicitly set false. |
| |
| ## 1.x |
| |
| The 1.x series was the first major version of the library, with release numbers |
| starting to follow semantic versioning, after 0.x being unstable. It never had |
| a changelog maintained for it. Releases mostly contained bug fixes, with the |
| occasional feature added. |