Skip to content

[libc++] Deprecate the _LIBCPP_ENABLE_CXX17_REMOVED_FEATURES and _LIBCPP_ENABLE_CXX20_REMOVED_FEATURES macros #75976

Closed
@ldionne

Description

@ldionne

While it is desirable to provide individual escape hatches for removed features (like _LIBCPP_ENABLE_CXX17_REMOVED_AUTO_PTR), the macros that enable all the escape hatches are undesirable.

Indeed, they make it too easy to hide issues in code when doing a transition -- for example let's say we remove C++03 feature X from C++23 in LLVM 18 and then want to remove C++03 feature Y from C++23 in LLVM 19. Anyone having defined the overall macro to re-enable all C++23 removed features will not even notice the removal, which seems bad for evolving the code base. Instead, we want people to be intentional about enabling those escape hatches.

Based on the discussion in the libc++ monthly meeting.

Metadata

Metadata

Assignees

Labels

libc++libc++ C++ Standard Library. Not GNU libstdc++. Not libc++abi.

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions