Version 1.5: Optionals
This version introduced support for optionals, along with clarification and examples of custom conversion overloads. Enums now have been dropped from the automatic conversion system, allowing explicit protection for out-of-range ints (or a completely custom conversion). This version has some internal cleanup and improved support for the newest compilers. Several bugs were fixed, as well.
Note: This is the final release with requires
, please switch to needs
.
- Fix unlimited short options eating two values before checking for positionals when no space present #90
- Symmetric exclude text when excluding options, exclude can be called multiple times #64
- Support for
std::optional
,std::experimental::optional
, andboost::optional
added if__has_include
is supported #95 - All macros/CMake variables now start with
CLI11_
instead of justCLI_
#95 - The internal stream was not being cleared before use in some cases. Fixed. #95
- Using an emum now requires explicit conversion overload #97
- The separator
--
now is removed when it ends unlimited arguments #100
Other, non-user facing changes:
- Added
Macros.hpp
with better C++ mode discovery #95 - Deprecated macros added for all platforms
- C++17 is now tested on supported platforms #95
- Informational printout now added to CTest #95
- Better single file generation #95
- Added support for GTest on MSVC 2017 (but not in C++17 mode, will need next version of GTest)
- Types now have a specific size, separate from the expected number - cleaner and more powerful internally #92
- Examples now run as part of testing #99