[libcxx-commits] [PATCH] D157058: [libc++] Remove generic char_traits implementation

Nikolas Klauser via Phabricator via libcxx-commits libcxx-commits at lists.llvm.org
Thu Aug 10 08:12:19 PDT 2023


philnik added a comment.

In D157058#4576689 <https://reviews.llvm.org/D157058#4576689>, @gribozavr2 wrote:

> In addition to breaking LLDB's build itself, this change also broke the following test: https://github.com/llvm/llvm-project/blob/main/lldb/test/API/functionalities/data-formatter/data-formatter-stl/libcxx/string_view/main.cpp that uses `std::basic_string<unsigned char>` - is it not allowed?
>
>   Error when building test subject.
>   
>   [...]
>   
>   Build Command Output:
>   [...]
>   In file included from [...]/llvm-project/lldb/test/API/functionalities/data-formatter/data-formatter-stl/libcxx/string_view/main.cpp:2:
>   [...]/include/c++/v1/string:723:46: error: implicit instantiation of undefined template 'std::char_traits<unsigned char>'
>     723 |     static_assert(( is_same<_CharT, typename traits_type::char_type>::value),
>         |                                              ^
>   [...]/llvm-project/lldb/test/API/functionalities/data-formatter/data-formatter-stl/libcxx/string_view/main.cpp:95:36: note: in instantiation of template class 'std::basic_string<unsigned char>' requested here
>      95 |   std::basic_string<unsigned char> uchar_source(10, 'a');
>         |                                    ^
>   [...]/include/c++/v1/__fwd/string.h:23:29: note: template is declared here
>      23 | struct _LIBCPP_TEMPLATE_VIS char_traits;
>         |                             ^

AFAIK it's not.



================
Comment at: libcxx/include/__string/char_traits.h:79
-template <class _CharT>
-struct _LIBCPP_DEPRECATED_("char_traits<T> for T not equal to char, wchar_t, char8_t, char16_t or char32_t is non-standard and is provided for a temporary period. It will be removed in LLVM 18, so please migrate off of it.")
-    char_traits
----------------
mstorsjo wrote:
> FWIW, I've never seen this deprecation message in earlier builds of lldb - I rechecked old build logs, and this wasn't ever printed.
Do you have `-Wno-deprecated` or something like that in the config? I don't know what we can do other than deprecating the things we want to remove and mentioning them in the release notes.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D157058/new/

https://reviews.llvm.org/D157058



More information about the libcxx-commits mailing list