[PATCH] D48292: use modern type trait implementations when available

Richard Smith - zygoloid via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Mon Jun 18 12:14:00 PDT 2018


rsmith created this revision.
rsmith added reviewers: EricWF, mclow.lists.
Herald added a subscriber: cfe-commits.

Teach libcxx to stop using various deprecated __has_* type traits, in favor of the ("modern", C++11 era) __is_* type traits.

This is mostly just a simplification, but fixes at least one bug: `_Atomic T` should be considered trivially-destructible, but is not considered to be POD by Clang, and `__has_trivial_destructor` is specified in the GCC documentation as returning `false` for non-POD non-class types.


Repository:
  rCXX libc++

https://reviews.llvm.org/D48292

Files:
  include/type_traits
  test/std/utilities/meta/meta.unary/meta.unary.prop/is_trivially_destructible.pass.cpp

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D48292.151761.patch
Type: text/x-patch
Size: 4539 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20180618/854b3838/attachment.bin>


More information about the cfe-commits mailing list