CLI11 v1.5 Release Notes

  • ๐Ÿ‘ 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 enum 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