Utilities (C++17)
as_const, clamp, 3-arg hypot, make_from_tuple, invoke, pair/tuple improvements, byte, chrono polish, gcd/lcm, hardware interference sizes, variadic lock_guard.
Connected features
No dependency lines — on the map this feature hangs off C++17 by a star edge.
Papers
25 · Urbana 2014 → Kona 2017Adds std::invoke.
Cleans up the use of noexcept in the library (removes it from functions with narrow contracts). [unord.set.overview]/[unord.multiset.overview]: 'Container_move_assign' replaced with 'Pred'..
Makes pair/tuple constructors conditionally explicit.
Adds std::as_const.
Adds owner_less<> (transparent).
Polishes <chrono>: floor, ceil, round, abs for durations and time points.
Makes lock_guard variadic (first attempt).
Adds std::clamp.
Adds the three-argument std::hypot.
Adds atomic::is_always_lock_free.
Adds hardware_constructive_interference_size and hardware_destructive_interference_size.
Makes C++17 refer to C11 instead of C99.
Adds synopses for the C library headers.
Reserves std2-style namespaces (std followed by digits) for future standardization.
Added default_order ('ordered by default') at Oulu 2016; reverted at Kona 2017. Reverted at 2017-03 Kona (LWG motion 16, NB FI 18); never shipped.
Adds std::make_from_tuple.
Renames a <random> distribution parameter for consistency.
Makes char_traits operations constexpr.
Makes more of <chrono> constexpr.
Clarifies that shared_future's copy operations have wide contracts.
Makes future_error constructible from an error code.
Adds std::scoped_lock instead of a variadic lock_guard.
Adds std::byte.
Fixes common_type for durations.
Resolves inconsistencies in the atomic<T> named base classes.