Skip to content

MNMLSTC Core 1.1.0

Latest
Compare
Choose a tag to compare
@bruxisma bruxisma released this 09 Jun 22:14
· 145 commits to master since this release

MNMLSTC Core 1.1.0 is now available.

This release brings a large number of new features and a large number of bug fixes and only 1 breaking change. In no particular order:

  • Fix expected<T> disregarding the interface expressed by optional<T>
  • Fix optional<T> not following N3793 by not permitting constexpr optional<T>
  • Fix swap functions being placed in the wrong namespace (ADL would not trigger)
  • Fix lack of exception safety in core::any copying (would result in a memory leak)
  • Fix variant<Ts...> constructor being explicit (this caused a slight incompatibility with Boost.Variant)
  • Fix value_at<N> not working at all in the utility component.
  • Fix any not implementing operator = (ValueType&&) member function.
  • Add an implementation of N4017 (non-member size() and more)
  • Add std::error_condition optional type result<T>.
  • Add constexpr move and forward functions
  • Add is_null_pointer type trait.
  • Add is_nothrow_swappable type trait.
  • Add functions from <numeric> that take a range-like type (Alternative to Boost.Range)
  • Add functions from <algorithm> that take a range-like type (Alternative to Boost.Range)
  • Add remove_erase and remove_erase_if to algorithm component (Alternative to Boost.Range)
  • Add transform_if to algorithm component (Boost.Range does not provide this)
  • Add dismiss member function to scope_guard<Callable>, which allows one to cancel the scope_guard from executing.
  • Make invoke function constexpr (This does not include the unpack_t and runpack_t overloads)
  • Move expected<T> to the optional component header (BREAKING CHANGE)

This is also the first release which provides an RPM for Linux distributions. The RPM is signed, and the public key is provided as well.

A DEB package is not provided as it was discovered that CPack DEB support is for binary packages only. C'est La Vie.