Releases: martinmoene/optional-lite
3.6.0
This release of optional lite contains the following changes:
Additions:
- Add non-standard value_or_eval() (#67).
- Add
[[nodiscard]]
to relational operators. - Add GitHub Actions CI and badge for it (nonstd-lite-project issue 55).
Changes:
- Update actions/checkout in GitHub Actions to v4 (#78, thanks @striezel).
- Update actions/checkout in GitHub Actions to v3 (#71, thanks @striezel).
- Add/update example/CMakeLists.txt (nonstd-lite-project issue 56).
- Remove gcc 8 and clang 8, 9, 10 from GitHub CI matrix (nonstd-lite-projet issue 69).
- Add common CMake generated files to gitignore (#75, thanks @kacf).
- Remove Travis CI configuration and badge (#73, thanks @striezel).
- Remove msvc (windows-2016) image from GitHub Actions (nonstd-lite-project issue 61, thanks @xavier2k6).
- Add msvc (windows-2022) image to GitHub Actions (nonstd-lite-project issue 62).
- Do not cancel all jobs in a workflow if one fails. (#72, thanks @striezel, nonstd-lite-projet issue 71).
- Use toplevel unit_name (nonstd-lite-project 56).
- Update CMakeLists.txt for examples (nonstd-lite-project 56).
- Change value used with *_CPP20_OR_GREATER to 202002L (nonstd-lite-project issue 49) Now, designate C++23 as speculative.
- Prevent undefined
_HAS_EXCEPTIONS
warning with Clang (#68, thanks @redbaron). - Use ternary operator and C++11 constexpr.
- Use
optional_constexpr14
withvalue_or_eval()
(#67). - Accommodate VS2013/MSVC12.0/1800 and earlier.
- Update Readme guided by markdownlint.
- In Readme, update test specification, add folding (#67).
- In Readme, correct URLs for reference [10] Generic: Discriminated Unions.
- In Readme, add Daniela Engert's Boost20.optional to section Other implementations of optional.
Fixes:
- Fix to use forwarding reference (thanks @matthew-wozniczka, fixes #74).
- Fix some typos (#70, thanks @striezel).
- Fix construction, emplace from const types (#69, thanks @atorstling).
- Fix cmake config file to use @package_nspace@ (nonstd-lite issue 68).
3.5.0
This release of optional lite contains the following changes:
Additions:
- Add script
tc-cl.bat
(nonstd-lite-project issues 54). - Add macro
optional_static_assert()
and compile-time checks on T. - Add PlatformIO library manifest file
library.json
(replaces #64, thanks to @Nullfati). - Add
export()
toCMakeLists.txt
enabling importing targets. See nonstd-lite-project issues 50.
Changes:
- Enhance in-place construction (#66, thanks @@fekir).
- Change to use
#if defined(_MSC_VER)
to avoid-Wundef
warning (#65, thanks @eepp). - Change usage of
=default
with test structures to VS2015 for (#61). - Handle lest test framework as system include to prevent warnings.
Fixes:
- Fix
value_or()
from changing stored value (issue #60, thanks @deadem, @mortenfyhn and @phprus).
3.4.0
3.3.0
Release 3.3.0 of optional lite contains the following changes.
Additions:
- Add tweak header support
Changes:
- Add .editorconfig.
- Add TortoiseGit integration with GitHub issues.
- Add build folder and IDE folders/files to .gitignore (.vs, .vscode, CodeBlocks).
- Change vcpkg install to use CMake
- Change badge 'on conan' to refer to conan-center (thanks @jgsogo).
- Improve section on Conan in Readme.
- Remove no longer used
struct enabler
. - Special-case usage of ref qualifiers for GNUC 4.8 (#56,thanks to @davidtazy).
- Update list of known good compilers (Xcode) (#54, thanks to @past-due).
- Add settings options to conanfile (#46, thanks to @ngrodzitski).
- Add Visual Studio 2019 to the Appveyor build matrix, nonstd lite project issue 47.
- Add badge 'on godbolt', nonstd-lite-project issue 36.
- Improve MSVC version table, nonstd-lite-project issue 38.
Fixes:
- Handle presence of various C++11 type traits (#58, thanks to @trapexit)
- Change
requires()
to use a default template argument (#55, #57, thanks to @improbablejan), see nonstd-lite-project issue 40 - Fix
optional_HAVE_INITIALIZER_LIST
is undefined #51 (#52) - Fix compilation with exceptions disabled. (#47, #49, thanks to @viettrungluu)
- Fix compilation of examples by adding CMakeLists.txt (#48, #50, thanks to @viettrungluu)
3.2.0
[to be expanded]
This release of optional lite improves support for CMake and Conan and contains numerous other changes and fixes.
See also nonstd lite project Improve coherence between lite projects.
3.1.0
To be written
- optional_CPLUSPLUS
- Add CMake installation target (inspired on PR #30)
- Use other and value as parameter names; fix in-place type for make_optional()
- Mention expected-lite
- Make use of __has_include() more robust
- Update shared in_place facility
- Add CMake options to select between std::optional and nonstd::optional
- Add -Wsign-onversion
- Handle AppleClang C++17 compiler flag
- Correct comment
- Prevent -Wunused-function warning (inspired on PR #29)
- Prevent -Wconversion message (inspired on PR #27)
- Add -Wconversion warning
- Rename to optional_REQUIRES_A()
SFINAE on
- .._A(): method argument type
- .._T(): template argument type
- .._R(): return type
- Refine require clauses
- Add converting construction, assignment (issue #27)
- Add version to CMakeLists.txt
- Add script to update version
- Obviate need for -DNOMINMAX with MSVC (nonstd-lite issue 16)
- Fix detection of GNUC, update style for if defined()
- Expand Travis configuration
- Update lest to version 1.33.2 (issue #26)
- Change whitespace
- Getting rid of
conversion from ‘long unsigned int’ to ‘unsigned int' may change value
-messages (#25) - Getting rid of
conversion from ‘long unsigned int’ to ‘unsigned int' may change value
-messages - Update optional.hpp
- Make some rvalue qualified function to reuse lvalue versions of corresponding functions. (#21)Thanks @ngrodzitski
- Let C++ standard be specified manually via optional_CPLUSPLUS, issue #20
- Fix web links in section Notes and References
- Fix to not require empty optional for emplace
- Fix issue #18 (thanks to @rwst Ralf Stephan)
- Add test for issue #18
- Use CMAKE_CXX_STANDARD, remove c++03 target
- Add "LANGUAGES CXX" to project
- Declare stream operator before inclusion of lest test framework
- Align CMake configuration (add_library)
3.0.0
optional lite has been re-licensed under the Boost Software License (BSL) (issue #17).
Additions
- Made v2.3.0 available in conan (thanks to @agauniyal).
Changes
- Enabled differentiating between MSVC 14.0 (VS2015) and 14.1 (VS2017).
- Expanded Travis and Appveyor configurations.
- Renamed optional-lite to optional-main.
- Suppressed -Wundef for optional.hpp.
- Updated lest to version 1.33.1.
Fixes
- Added missing using std::nullopt_t for C++17 std::optional
- Corrected rhs to other (issue #12, thanks to @TartanLlama)
2.3.0
This release of optional lite contains the following changes.
Changes
This release lets nonstd::optional
use std::optional
if it's available. Further in_place_type
and in_place_index
were added. The readme now has Conan installation instructions and badge (issue #9, thanks to @agauniyal) as well as a section Other implementations of optional.
Fixes
None.
2.2.0
2.1.0
This release of optional lite contains the following changes.
Additions
Tests and examples can now also be build via buck (thanks to Nick La Rooy @njlr). A try it online badge has been added to the Readme.
Fixes
Issue #5 has been fixed by providing std::swap()
via header file <functional>
. Compiler selection in test/CMakeLists.txt file has been fixed.