Skip to content

P3471R4 Standard Library Hardening #5300

@StephanTLavavej

Description

@StephanTLavavej

WG21-P3471R4 Standard Library Hardening
WG21-P3697R1 Minor Additions To Standard Library Hardening
WG21-P3878R1 Standard Library Hardening Should Not Use The 'Observe' Semantic

Note: If this link appears to be broken, don't worry! Papers are often revised during a WG21 meeting before the final vote. When that happens, there's a delay of a few weeks between the end of the meeting and the publication of the papers. When the papers are available, the https://wg21.link redirector will start working.

Feature-test macros (expected):

#define __cpp_lib_hardened_array             202502L
#define __cpp_lib_hardened_basic_string      202502L
#define __cpp_lib_hardened_basic_string_view 202502L
#define __cpp_lib_hardened_bitset            202502L
#define __cpp_lib_hardened_deque             202502L
#define __cpp_lib_hardened_expected          202502L
#define __cpp_lib_hardened_forward_list      202502L
#define __cpp_lib_hardened_inplace_vector    202502L
#define __cpp_lib_hardened_list              202502L
#define __cpp_lib_hardened_mdspan            202502L
#define __cpp_lib_hardened_optional          202502L
#define __cpp_lib_hardened_span              202502L
#define __cpp_lib_hardened_valarray          202502L
#define __cpp_lib_hardened_vector            202502L
#define __cpp_lib_hardened_basic_stacktrace 202506L
#define __cpp_lib_hardened_common_iterator  202506L
#define __cpp_lib_hardened_counted_iterator 202506L
#define __cpp_lib_hardened_shared_ptr_array 202506L
#define __cpp_lib_hardened_view_interface   202506L

Note: We're focused on implementing the remaining library-only features in C++23. Until that's done, we will NOT be accepting PRs for C++26 features.

I am substantially implementing this with #5274, but R4 was specified to use contracts, so this feature is blocked by #5286.

Metadata

Metadata

Assignees

No one assigned

    Labels

    cxx26C++26 feature

    Type

    No type

    Projects

    Status

    Blocked

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions