[all-commits] [llvm/llvm-project] cce062: [libc++] Reintroduce the removed std::char_traits ...
Louis Dionne via All-commits
all-commits at lists.llvm.org
Wed Sep 13 09:30:18 PDT 2023
Branch: refs/heads/main
Home: https://github.com/llvm/llvm-project
Commit: cce062d226ba91c634f52ef00e1086f38c829d3a
https://github.com/llvm/llvm-project/commit/cce062d226ba91c634f52ef00e1086f38c829d3a
Author: Louis Dionne <ldionne.2 at gmail.com>
Date: 2023-09-13 (Wed, 13 Sep 2023)
Changed paths:
M libcxx/docs/ReleaseNotes/18.rst
M libcxx/include/__string/char_traits.h
A libcxx/test/libcxx/strings/char.traits/char.traits.specializations/arbitrary_char_type.deprecated.verify.cpp
A libcxx/test/libcxx/strings/char.traits/char.traits.specializations/arbitrary_char_type.pass.cpp
Log Message:
-----------
[libc++] Reintroduce the removed std::char_traits specialization (#66153)
This partially reverts commit e30a148b098, which removed the base
template for std::char_traits. That base template had been marked as
deprecated since LLVM 16 and we were planning to remove it in LLVM 18.
However, as explained in the post-commit comments in
https://reviews.llvm.org/D157058, the deprecation mechanism didn't work
as expected. Basically, the deprecation warnings were never shown to
users since libc++ headers are system headers and Clang doesn't show
warnings in system headers.
As a result, this removal came with basically no lead time as far as
users are concerned, which is a poor experience. For this reason, I am
re-introducing the deprecated char_traits specialization until we have a
proper way of phasing it out in a way that is not a surprise for users.
More information about the All-commits
mailing list