• Re: Updated draft list

    From Stefan Ram@3:633/280.2 to All on Sun Jun 15 22:32:20 2025
    ram@zedat.fu-berlin.de (Stefan Ram) wrote or quoted:
    I have updated my draft list. Most recent entries at the top.

    date name revises comments (target, similarity)

    2025-03-15 N5008 N5001 C++26
    2024-12-17 N5001 N4993 C++26
    2024-10-19 C++23 C++20 "ISO/IEC 14882:2024" "C++23"
    2024-10-16 N4993 N4988 C++26
    2024-08-04 N4988 N4986 C++26
    2024-08-04 N4988 N4986 C++26
    2024-07-16 N4986 N4981 C++26
    2024-04-16 N4981 N4971 C++26
    2023-12-18 N4971 N4964 C++26
    2023-10-15 N4964 N4958 C++26
    2023-08-14 N4958 N4950 C++26
    2023-05-10 N4950 N4944 C++23, final draft for C++23
    2023-03-19 N4944 N4928 C++23
    2022-12-18 N4928 N4917 (filed "2023" [mailing date 2023-01]) 2022-09-05 N4917 N4910 C++23
    2022-09-04 N4919 may be intended "final draft for C++23" 2022-03-17 N4910 N4901 C++23
    2022-03 N4901 "n4901" listed again in 2022
    2021-10-22 n4901 n4892 C++23
    2021-06-18 n4892 n4885 C++23
    2021-03-17 n4885 n4878 C++23
    2020-12-15 n4878 n4868 C++23
    2020-12-12 14882,6 14882,5 C++20=, f202003, a20200904, p202012
    2020-10-18 n4868 n4861 C++23
    2020-04-08 n4861 n4849 C++20
    2020-01-14 n4849 n4842 C++20
    2019-11-27 n4842 n4835 C++20
    2019-10-08 n4835 n4830 C++20
    2019-08-15 n4830 n4820 C++20
    2019-06-17 n4820 n4810 C++20
    2019-03-15 n4810 n4800 C++20
    2019-01-21 n4800 n4791 C++20
    2018-12-07 n4791 n4778 C++20, draft now with Ranges
    2018-10-08 n4778 n4762 C++20
    2018-07-07 n4762 n4750 C++20
    2018-05-07 n4750 n4741 C++20
    2018-04-02 n4741 n4727 C++20
    2018-02-12 n4727 n4713 C++20
    2017-11-27 n4713 n4700 C++20
    2017-12 14882,5 14882,4 C++17= approved 2017-09-06
    2017-10-16 n4700 n4687 C++20
    2017-07-30 n4687 n4659 C++20
    2017-03-21 n4660 - C++17*
    2017-03-21 n4659 n4640 C++17*
    2017-02-06 n4640 n4618 C++17
    2016-11-28 n4618 n4606 C++17
    2016-07-12 n4606 n4594 C++17
    2016-07-12 n4604 - C++17
    2016-05-30 n4594 n4582 C++17
    2016-03-19 n4582 n4567 C++17
    2015-11-09 n4567 n4527 C++17
    2015-05-22 n4527 n4431 C++17
    2015-04-10 n4421 n4296 C++17
    2014-12-15 14882,4 C++14= (saw it only in 2015-01!)
    2014-11-19 n4296 n4140 C++17
    2014-10-07 N4140 N3936 C++14*?
    2014-09-02 n4141 - C++14*
    2014-03-02 N3936? N3797 C++14
    2013-10-13 N3797 N3691 C++14
    2013-05-16 N3691 N3485 C++14
    2013-05-15 N3690 - C++14
    2013 TCPL4 ISBN 0-321-56384-0
    2012-11-02 n3485 n3376 C++14
    2012-02-28 n3376 n3337 C++14
    2012-01-16 n3337 n3291 C++11 github
    2011-09 14882,3 C++11=, approved 2011-08-12
    2011-04 n3291 N3092? C++11*
    2011-04-11 n3290 C++11*
    2010-03-26 n3092 C++1x
    2008-10-08 n2800 C++1x
    2007-10-22 n2461 C++0x
    2006-11-06 n2135 C++0x
    2005-10-19 n1905 C++0x
    2005-04-27 N1804=05-0064 C++0x
    2004-11-05 N1733=04-0173 C++0x
    2004-05-19? N1655=04-0095 C++0x
    2004-04-11 N1638=04-0078 C++0x
    2004-02-06? N1577=04-0017 C++0x
    2004 2004 Performance TR (ISO/IEC PDTR 18015)
    2004 2004 Library extension TR1 (ISO/IEC PDTR 19768) 2003-10-15 14882,2 C++98, 2nd Ed
    2000 TCPLS ISBN 0-201-70073-5
    1998-09-01 14882,1 C++98, 1st Ed, ANSI approval 1998-07-27
    1997 TCPL3 ISBN 0-201-88954-4
    1991 TCPL2 ISBN 0-201-53992-6
    1991 Cfront 3.0
    1990 ARM ISBN 0-201-51459-1
    1990 ANSI committee
    1989 Cfront 2.0
    1987 Cfront 1.2
    1987 GNU C++ (first)
    1985/6? TCPL1 ISBN 0-201-12078-X
    1986 Cfront 1.1
    1985 Cfront 1.0
    1984 Ref man C with classes
    1982 Ref man C with classes
    1979 impl1 C with classes



    --- MBSE BBS v1.1.1 (Linux-x86_64)
    * Origin: Stefan Ram (3:633/280.2@fidonet)
  • From Stefan Ram@3:633/280.2 to All on Sun Jun 15 22:52:16 2025
    ram@zedat.fu-berlin.de (Stefan Ram) wrote or quoted:
    2025-03-15 N5008 N5001 C++26

    C++26

    C++26 is shaping up to be a substantial update, introducing several
    highly anticipated features and language improvements.

    For the language, it adds contracts, introducing language-level
    support for design by contract, allowing specification of
    preconditions, postconditions, and invariants for functions
    and methods.

    It brings static reflection capabilities, enabling compile-time
    introspection of types and program structure, a major addition
    for advanced metaprogramming and tooling.

    It enables constexpr cast from void*, making certain generic
    programming techniques possible at compile time.

    User-generated static_assert messages are now allowed, improving
    diagnostics in template-heavy code.

    Placeholder variables with no name are permitted, simplifying
    code that requires unused variables.

    Pack indexing enhances template parameter pack manipulation.

    Attributes can now be applied to structured bindings.

    There are improved diagnostics and safety for uninitialized variable
    reads.

    Functions can be deleted with a custom reason string.

    Variadic friends are enabled.

    Constexpr placement new extends constant evaluation to placement
    new expressions.

    Structured binding declaration as a condition is now possible.

    There are clarifications to template constraint resolution.

    Deleting a pointer to an incomplete type is now ill-formed,
    strengthening type safety.

    Structured bindings can introduce a pack.

    Exception throwing in constant-evaluation is permitted.

    There is more flexibility in constant expressions involving
    structured bindings and references to constexpr variables.

    The Oxford variadic comma deprecates ellipsis parameters without
    a preceding comma for better C compatibility.

    Deprecated array comparisons are removed.

    In the standard library, C++26 adds hashing for std::chrono
    value classes, a std::is_within_lifetime utility, native
    handles in file streams, string and bitset interoperability with
    std::string_view, expanded constexpr support for <cmath> and
    <complex>, and 2022 SI prefixes for ratios such as std::quecto,
    std::ronto, std::ronna, and std::quetta.

    It introduces std::copyable_function, a more flexible function
    wrapper, and std::submdspan() for enhanced multidimensional
    span operations.

    There is a new <debugging> header for standard debugging support and
    a <linalg> header introducing a BLAS-like linear algebra interface.

    The tuple protocol is extended to std::complex.

    The ranges library gains views::concat for concatenating ranges,
    string and string view concatenation, std::ranges::generate_random
    for random number generation over ranges, and the ability
    to print blank lines with std::println().

    There is a std::formatter for std::filesystem::path and
    saturation arithmetic functions like std::add_sat and
    std::div_sat for safe arithmetic.

    Other notable changes include the removal of deprecated
    atomic initialization APIs such as atomic_init and
    ATOMIC_VAR_INIT, standardization of BLAS-like operations and
    SIMD parallelism, and various proposals to improve safety,
    including those championed by Bjarne Stroustrup.

    Some features are still under discussion or not yet finalized,
    such as further expansion of reflection, continued work
    on concepts lite for template constraints, and further
    integration of the Ranges v3 library.

    C++23

    C++23 is a moderate update compared to C++20, focusing on incremental
    improvements to both the core language and the standard library.

    In the core language, it introduces explicit object parameters
    (deducing this), if consteval for compile-time branching,
    multidimensional subscript operators, built-in decay copy
    support, marking unreachable code, platform-independent
    assumptions, and named universal character escapes.

    In the standard library, it brings string formatting
    improvements including formatting entire ranges, standard named
    modules (std and std.compat), new containers like flat_map and
    flat_set, multidimensional span (mdspan), a standard generator
    coroutine, monadic operations on std::optional, runtime
    stacktrace support, many improvements to the ranges library,
    and std::expected as an alternative to exceptions.



    --- MBSE BBS v1.1.1 (Linux-x86_64)
    * Origin: Stefan Ram (3:633/280.2@fidonet)