Skip to content

Version 1.5: Optionals

Compare
Choose a tag to compare
@henryiii henryiii released this 09 Apr 14:10

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, and boost::optional added if __has_include is supported #95
  • All macros/CMake variables now start with CLI11_ instead of just CLI_ #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