[libcxx-commits] [PATCH] D138307: [libc++] Remove default definition of std::char_traits

Louis Dionne via Phabricator via libcxx-commits libcxx-commits at lists.llvm.org
Mon Nov 21 10:52:35 PST 2022


ldionne added a comment.

In D138307#3941734 <https://reviews.llvm.org/D138307#3941734>, @tahonermann wrote:

> I'm concerned that this change will break "working" code. While the standard does not specify specializations for `signed char` and `unsigned char`, it isn't hard to find cases of people using `basic_string<unsigned char>`. I didn't look hard, but it looks like Emscripten would be broken by this change based on https://github.com/emscripten-core/emscripten/issues/7362.
>
> All major compilers appear to "support" specializations for `signed char` and `unsigned char`: https://godbolt.org/z/h3xG7T48T. There is an old paper that argues for standardizing such specializations: https://wg21.link/n1985.

I think a common ground here could be to support `signed char` and `unsigned char` explicitly as extensions. But do we agree that `std::string<int>` makes no sense and if it breaks some users that's fine?

Also, would you have an appetite for reviving https://wg21.link/n1985?


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D138307



More information about the libcxx-commits mailing list