Releases: kongaskristjan/fire-hpp
Releases · kongaskristjan/fire-hpp
Release list
v1.0
New features and improvements
- Added utilities for getting raw arguments, and added the option to allow unused parameters that could be parsed separately by the user
- Added argument constraints
- Utilities for printing help in
fired_main()and properly raising errors - Improved error messages
- Improved documentation of internals, including a write-up of the library's algorithm
- Minor fixes
The library is finally stable! It's been a long journey.
v0.2
v0.2 is mostly a matured version of v0.1, in a sense that not many new features were added, however existing features were improved. In summary, a lot of breaking changes and a lot of internal structural changes. The rationale is to make most of the breaking changes early in development, so that new features can be added to a "more final" version of the library.
Release notes
Breaking changes:
- Include fire as
<fire-hpp/fire.hpp>not<fire.hpp>. - Hyphens are also written when specifying argument names. So instead of
fire::arg("x")andfire::arg("long-name")you writefire::arg("-x")andfire::arg("--long-name"). - Name/position and description are now both the first argument. Eg. now it's
fire::arg({name, description}, default value)instead offire::arg(name, description, default value). - Variadic arguments are now specified as
fire::arg(fire::variadic())instead offire::arg::vector(). - No more
FIRE_NO_SPACE_ASSIGNMENT(...).
New library features:
FIRE(...)now works with positional/variadic argument, previously neededFIRE_NO_SPACE_ASSIGNMENT(...). This was a HUGE change internally, had to implement a totally new argument introspection algorithm.fire.hppnow compiles without exception support, but you need to useFIRE_NO_EXCEPTIONS(...)instead ofFIRE(...), which has limitations.- Program descriptions.
- Positional arguments can be supplied with custom names.
Improvements:
- In
program -- --some-text--some-textis interpreted as positional, per convention. - Much cleaner help messages. Clarified a few error messages too.
- Accept arguments in a manner similar to
make -j8 <=> make -j 8if unambiguous. - Misc bug fixes.
Integration
- CMake integration. (thanks cxkoda).
- Conan package (https://conan.io/center/fire-hpp) (thanks axalon900).
v0.1
Features:
- Flags, named, positional, vector parameters
- Optional parameters, default values
- Conversions to arithmetic types
- Parameter descriptions
- All of this using just function signatures