[libcxx-commits] [PATCH] D102992: [libcxx][type_traits] deprecates `std::is_literal_type` and remove it for C++20

Mark de Wever via Phabricator via libcxx-commits libcxx-commits at lists.llvm.org
Mon May 24 08:20:07 PDT 2021

Mordante requested changes to this revision.
Mordante added a comment.
This revision now requires changes to proceed.

Thanks for working on this. Please update this note https://libcxx.llvm.org/docs/Cxx2aStatus.html#note-p0619
I see some build issues, but I expect @cjdb's suggestions to fix them.

Comment at: libcxx/test/std/utilities/meta/meta.unary/meta.unary.prop/is_literal_type.removed.verify.cpp:20-21
-  return 0;
+using std::is_literal_type;   // expected-error {{no member named 'is_literal_type' in namespace 'std'}}
+using std::is_literal_type_v; // expected-error {{no member named 'is_literal_type_v' in namespace 'std'}}
Quuxplusone wrote:
> Oh— you probably need to do something here to deal with non-Clang compilers. @ldionne probably knows what to do.
Since the test is a `verify.cpp` it should only be executed with the Clang compiler.

Comment at: libcxx/test/std/utilities/optional/optional.object/optional.object.dtor/dtor.pass.cpp:56
         static_assert(std::is_literal_type<optional<T>>::value, "");
Since we disable some tests in C++20 (and later) modes it would be nice to test some other properties. regarding copy constructible/assignable and move constructible/assignable.

  rG LLVM Github Monorepo



More information about the libcxx-commits mailing list