History of c++ – cppreference.com electricity journal

• From C99: mathematical functions from math.h that were new in C99, blank character class, Floating-point environment, hexfloat I/O Manipulator, fixed-size integral types, the long long type, va_copy, the snprintf() and vfscanf() families of functions, and the C99 conversion specifies for printf() and scanf() families of functions.

This international standard is a C++ standard library extension, which adds the special functions that were part of TR1, but were not included in C++11: elliptic integrals, exponential integral, Laguerre polynomials, Legendre polynomials, Hermite polynomials, Bessel functions, Neumann functions, beta function, and Riemann zeta function. This standard was merged into C++17.

• New language features: auto and decltype, defaulted and deleted functions, final and override, trailing return type, rvalue references, move constructors/ move assignment, scoped enums, constexpr and literal types, list initialization, delegating and inherited constructors, brace-or-equal initializers, nullptr, long long, char16_t and char32_t, type aliases, variadic templates, generalized unions, generalized PODs, Unicode string literals, user-defined literals, attributes, lambda expressions, noexcept, alignof and alignas, multithreaded memory model, thread-local storage, GC interface, range for (based on a Boost library), static assertions (based on a Boost library)

• New library features: atomic operations library, emplace() and other use of rvalue references throughout all parts of the existing library, std::initializer_list, stateful and scoped allocators, forward_list, chrono library, ratio library, new algorithms, Unicode conversion facets

This TS extends the C++ core language with concepts (named type requirements) and constraints (limits on the types allowed in template, function, and variable declarations), which aids metaprogramming and simplifies template instantiation diagnostics, see concepts. This TS was merged into C++20, with some omissions.

• Language changes: fold-expressions, class template argument deduction, auto non-type template parameters, compile-time if constexpr, inline variables, structured bindings, initializers for if and switch, u8-char, simplified nested namespaces, using-declaration can declare multiple names, made noexcept part of type system, new order of evaluation rules, allocation functions with explicit alignment, guaranteed copy elision, __has_include, lambda capture of *this, constexpr lambda, attribute namespaces don’t have to repeat, new attributes [[fallthrough]], [[nodiscard]], and [[maybe_unused]]. Removed trigraphs, the register keyword, bool increment

• Library changes: std::variant, std::launder, uninitialized memory tools ( std::destroy_at/ std::destroy/ std::destroy_n, std::uninitialized_move, std::uninitialized_value_construct, etc), map/set extract and map/set merge, byte, std::make_from_tuple, std::to_chars/ from_chars, relative path support in Filesystem ( proximate, relative, weakly_canonical), directory entry caching in Filesystem, contiguous iterators, non-member size/ empty/ data, map/unordered_map try_emplace and insert_or_assign, uncaught_exceptions, variadic lock_guard, as_const, conjunction/ disjunction/ negation, type trait variables xxx_v, transparent owner_less, rounding functions for duration and time_point, array support for std::shared_ptr, not_fn, weak_from_this, is_always_lock_free, is_swappable, clamp, 3D hypot, cache line interface, is_invocable, is_aggregate, has_unique_object_representations. Deprecated std::iterator, std::raw_storage_iterator, std::get_temporary_buffer, std::is_literal_type, std::result_of, all of Removed auto_ptr, the deprecated function objects, std::random_shuffle, std::unexpected, the obsolete iostreams aliases.

• From TS’s: the filesystem library, the library fundamentals v1 (including optional, any, string_view, polymorphic allocators, searchers, apply), parallelism v1 (including execution policies, reduce, inclusive_scan, exclusive_scan), but removing exception_list. From special math IS: special mathematical functions, from library fundamentals v2: std::gcd, std::lcm