From 3359a17b3aef1effa494da3abe7f438f5bb184a7 Mon Sep 17 00:00:00 2001 From: Eric Fiselier Date: Sun, 23 Jun 2019 20:28:29 +0000 Subject: [PATCH] Apply new meta-programming traits throughout the library. The new meta-programming primitives are lower cost than the old versions. This patch removes those old versions and switches libc++ to use the new ones. llvm-svn: 364160 --- libcxx/include/__tuple | 2 +- libcxx/include/cmath | 2 +- libcxx/include/functional | 6 +- libcxx/include/math.h | 74 ++++----- libcxx/include/optional | 101 ++++++------ libcxx/include/tuple | 52 +++---- libcxx/include/type_traits | 145 +++++------------- .../type_traits/lazy_metafunctions.pass.cpp | 58 +++---- 8 files changed, 179 insertions(+), 261 deletions(-) diff --git a/libcxx/include/__tuple b/libcxx/include/__tuple index 8f2e72d6d1c4..196f3c2b5aa5 100644 --- a/libcxx/include/__tuple +++ b/libcxx/include/__tuple @@ -387,7 +387,7 @@ template struct __all_dummy; template -using __all = is_same<__all_dummy<_Pred...>, __all_dummy<((void)_Pred, true)...>>; +using __all = _IsSame<__all_dummy<_Pred...>, __all_dummy<((void)_Pred, true)...>>; struct __tuple_sfinae_base { template