[libcxx-commits] [PATCH] D92212: Make libcxx work according to Clang C++ Status if -fchar8_t is passed
Louis Dionne via Phabricator via libcxx-commits
libcxx-commits at lists.llvm.org
Wed Dec 2 14:26:32 PST 2020
ldionne added a comment.
In D92212#2428337 <https://reviews.llvm.org/D92212#2428337>, @mclow.lists wrote:
> I think this is the wrong direction - getting rid of `_LIBCPP_NO_HAS_CHAR8_T`
> We're making the feature macro `__cpp_lib_char8_t` always match `__cpp_char8_t`
> There are two macros for a reason.
Just to make sure I understand, your preference would be this, right? Please correct me if I'm wrong:
#if _LIBCPP_STD_VER > 17 && defined(__cpp_char8_t)
# define __cpp_lib_char8_t
In other words, define the library parts of `char8_t` only when the standard is >= C++20 *and* the compiler supports `char8_t`. Is that correct? That would basically be the status quo.
Like I said above, I do agree strongly that we shouldn't try to enable C++20 features in C++17, however in this case the compiler has already decided to make this possible (by providing `-fchar8_t` that can be enabled in C++17 mode), for compatibility reasons documented in the paper. In this instance, I believe that it's worse to have the library be inconsistent with the compiler than to digress from the design principle of not backporting stuff. Thoughts?
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
More information about the libcxx-commits