llvm-project/libcxx/include
Nikolas Klauser 42f8f55798 [libc++] Simplify type_traits and use more builtins
Reviewed By: ldionne, #libc

Spies: libcxx-commits

Differential Revision: https://reviews.llvm.org/D127226
2022-06-10 22:41:40 +02:00
..
__algorithm [libc++] Implement ranges::replace{, _if} 2022-06-10 11:54:46 +02:00
__bit [libc++] Replace _LIBCPP_HAS_NO_CONCEPTS with _LIBCPP_STD_VER > 17. NFCI. 2022-03-13 12:32:06 -04:00
__charconv [libc++] Don't use static constexpr in headers. 2022-06-07 18:47:44 +02:00
__chrono [NFC][libc++] Modularize chrono's calendar. 2022-04-06 17:47:53 +02:00
__compare [libc++] Replace _LIBCPP_HAS_NO_CONCEPTS with _LIBCPP_STD_VER > 17. NFCI. 2022-03-13 12:32:06 -04:00
__concepts [libc++] Replace _LIBCPP_HAS_NO_CONCEPTS with _LIBCPP_STD_VER > 17. NFCI. 2022-03-13 12:32:06 -04:00
__coroutine [libc++] Revert "Protect users from relying on detail headers" & related changes 2022-03-01 08:20:24 -05:00
__filesystem [libc++] Add various missing _LIBCPP_HIDE_FROM_ABI 2022-05-27 13:14:57 -04:00
__format [libc++] Granularize __string 2022-06-09 21:04:18 +02:00
__functional [libc++] Remove uses of __two in type_traits 2022-06-10 19:56:59 +02:00
__fwd [libc++][ranges] Implement `views::take`. 2022-05-06 14:16:13 -07:00
__ios [libc++] Revert "Protect users from relying on detail headers" & related changes 2022-03-01 08:20:24 -05:00
__iterator [libc++] Remove uses of __two in type_traits 2022-06-10 19:56:59 +02:00
__memory [libc++] Remove uses of __two in type_traits 2022-06-10 19:56:59 +02:00
__numeric [libc++] Revert "Protect users from relying on detail headers" & related changes 2022-03-01 08:20:24 -05:00
__random [libc++] Replace modulus operations in std::seed_seq::generate with conditional checks. 2022-05-24 10:29:25 +02:00
__ranges [libc++] Always enable the ranges concepts 2022-05-23 20:44:34 +02:00
__string [libc++] Granularize __string 2022-06-09 21:04:18 +02:00
__support [libcxx] Remove static inline and make use of _LIBCPP_HIDE_FROM_ABI in __support headers 2022-05-07 01:14:33 -04:00
__thread [libc++] Revert "Protect users from relying on detail headers" & related changes 2022-03-01 08:20:24 -05:00
__type_traits [libc++] Simplify type_traits and use more builtins 2022-06-10 22:41:40 +02:00
__utility [libc++] Granularize even more of type_traits 2022-06-10 11:56:38 +02:00
__variant [libc++] Revert "Protect users from relying on detail headers" & related changes 2022-03-01 08:20:24 -05:00
experimental [libc++] Remove unused __functional includes 2022-05-28 10:12:39 +02:00
ext [libc++] Granularize __string 2022-06-09 21:04:18 +02:00
CMakeLists.txt [libc++] Make sure we install the modulemap file with install-cxx-headers 2022-06-10 15:15:35 -04:00
__assert [libc++] Make the Debug mode a configuration-time only option 2022-06-07 16:33:53 -04:00
__availability [libc++] Removes _LIBCPP_AVAILABILITY_TO_CHARS. 2022-06-07 18:59:19 +02:00
__bit_reference [libc++] Fix C++03 with the unstable ABI enabled 2022-04-25 15:17:24 +02:00
__bits [libc++] Revert "Protect users from relying on detail headers" & related changes 2022-03-01 08:20:24 -05:00
__bsd_locale_defaults.h [libc++][NFC] Fix include guards and add a missing license header 2022-03-23 13:14:19 -04:00
__bsd_locale_fallbacks.h [libc++][NFC] Fix include guards and add a missing license header 2022-03-23 13:14:19 -04:00
__config [libc++] Towards a simpler extern template story in libc++ 2022-06-08 22:05:07 -04:00
__config_site.in [libc++] Make the Debug mode a configuration-time only option 2022-06-07 16:33:53 -04:00
__debug [libc++] Make the Debug mode a configuration-time only option 2022-06-07 16:33:53 -04:00
__errc [libc++] Normalize all our '#pragma GCC system_header', and regression-test. 2022-02-04 12:27:19 -05:00
__hash_table [libc++] Make the Debug mode a configuration-time only option 2022-06-07 16:33:53 -04:00
__locale [libc++] Towards a simpler extern template story in libc++ 2022-06-08 22:05:07 -04:00
__mbstate_t.h [libc++] Normalize all our '#pragma GCC system_header', and regression-test. 2022-02-04 12:27:19 -05:00
__mutex_base [libc++] Revert "Protect users from relying on detail headers" & related changes 2022-03-01 08:20:24 -05:00
__node_handle [libc++] Revert "Protect users from relying on detail headers" & related changes 2022-03-01 08:20:24 -05:00
__split_buffer [libc++] Implement P0401R6 (allocate_at_least) 2022-04-09 16:03:45 +02:00
__std_stream [libc++] Revert "Protect users from relying on detail headers" & related changes 2022-03-01 08:20:24 -05:00
__threading_support [libc++][NFC] Fix include guards and add a missing license header 2022-03-23 13:14:19 -04:00
__tree [libc++] Add a few _LIBCPP_ASSERTs in __tree 2022-05-05 11:29:48 -04:00
__tuple [libc++] Revert "Protect users from relying on detail headers" & related changes 2022-03-01 08:20:24 -05:00
__undef_macros [libc++] Assume that push_macro and pop_macro are available 2022-05-23 20:47:44 +02:00
algorithm [libc++] Implement ranges::replace{, _if} 2022-06-10 11:54:46 +02:00
any [libc++] Add various missing _LIBCPP_HIDE_FROM_ABI 2022-05-27 13:14:57 -04:00
array [libc++] Ensure that all public C++ headers include <__assert> 2022-03-30 15:05:31 -04:00
atomic [libcxx] Switch __cxx_contention_t to int32_t on 32 bit AIX 2022-05-12 19:00:42 +03:00
barrier [libc++] Remove conditional include 2022-05-25 10:04:54 -04:00
bit [libc++] Ensure that all public C++ headers include <__assert> 2022-03-30 15:05:31 -04:00
bitset [libc++] Granularize __string 2022-06-09 21:04:18 +02:00
cassert [libc++] Ensure that all public C++ headers include <__assert> 2022-03-30 15:05:31 -04:00
ccomplex [libc++] Ensure that all public C++ headers include <__assert> 2022-03-30 15:05:31 -04:00
cctype [libc++] Ensure that all public C++ headers include <__assert> 2022-03-30 15:05:31 -04:00
cerrno [libc++] Ensure that all public C++ headers include <__assert> 2022-03-30 15:05:31 -04:00
cfenv [libc++] Ensure that all public C++ headers include <__assert> 2022-03-30 15:05:31 -04:00
cfloat [libc++] Ensure that all public C++ headers include <__assert> 2022-03-30 15:05:31 -04:00
charconv [libc++] Removes _LIBCPP_AVAILABILITY_TO_CHARS. 2022-06-07 18:59:19 +02:00
chrono [NFC][libc++] Modularize chrono's calendar. 2022-04-06 17:47:53 +02:00
cinttypes [libc++] Ensure that all public C++ headers include <__assert> 2022-03-30 15:05:31 -04:00
ciso646 [libc++] Ensure that all public C++ headers include <__assert> 2022-03-30 15:05:31 -04:00
climits [libc++] Ensure that all public C++ headers include <__assert> 2022-03-30 15:05:31 -04:00
clocale [libc++] Ensure that all public C++ headers include <__assert> 2022-03-30 15:05:31 -04:00
cmath [libc++] Ensure that all public C++ headers include <__assert> 2022-03-30 15:05:31 -04:00
codecvt [libc++] Ensure that all public C++ headers include <__assert> 2022-03-30 15:05:31 -04:00
compare [libc++] Ensure that all public C++ headers include <__assert> 2022-03-30 15:05:31 -04:00
complex [libc++] Ensure that all public C++ headers include <__assert> 2022-03-30 15:05:31 -04:00
complex.h [libc++] Normalize all our '#pragma GCC system_header', and regression-test. 2022-02-04 12:27:19 -05:00
concepts [libc++] Ensure that all public C++ headers include <__assert> 2022-03-30 15:05:31 -04:00
condition_variable [libc++] Ensure that all public C++ headers include <__assert> 2022-03-30 15:05:31 -04:00
coroutine [libc++] Ensure that all public C++ headers include <__assert> 2022-03-30 15:05:31 -04:00
csetjmp [libc++] Ensure that all public C++ headers include <__assert> 2022-03-30 15:05:31 -04:00
csignal [libc++] Fix modules builds when features are removed 2022-06-08 18:48:25 -04:00
cstdarg [libc++] Ensure that all public C++ headers include <__assert> 2022-03-30 15:05:31 -04:00
cstdbool [libc++] Ensure that all public C++ headers include <__assert> 2022-03-30 15:05:31 -04:00
cstddef [libc++] Use __enable_if_t and is_integral in cstddef 2022-05-29 12:05:02 +02:00
cstdint [libc++] Ensure that all public C++ headers include <__assert> 2022-03-30 15:05:31 -04:00
cstdio [libc++] Ensure that all public C++ headers include <__assert> 2022-03-30 15:05:31 -04:00
cstdlib [libc++] Ensure that all public C++ headers include <__assert> 2022-03-30 15:05:31 -04:00
cstring [libc++] Ensure that all public C++ headers include <__assert> 2022-03-30 15:05:31 -04:00
ctgmath [libc++] Ensure that all public C++ headers include <__assert> 2022-03-30 15:05:31 -04:00
ctime [libc++] Ensure that all public C++ headers include <__assert> 2022-03-30 15:05:31 -04:00
ctype.h [libc++] Normalize all our '#pragma GCC system_header', and regression-test. 2022-02-04 12:27:19 -05:00
cuchar [libc++] Ensure that all public C++ headers include <__assert> 2022-03-30 15:05:31 -04:00
cwchar [libc++] Ensure that all public C++ headers include <__assert> 2022-03-30 15:05:31 -04:00
cwctype [libc++] Ensure that all public C++ headers include <__assert> 2022-03-30 15:05:31 -04:00
deque [libc++][format][3/6] Adds a __container_buffer. 2022-04-09 09:35:48 +02:00
errno.h [libc++] Normalize all our '#pragma GCC system_header', and regression-test. 2022-02-04 12:27:19 -05:00
exception [libc++] Ensure that all public C++ headers include <__assert> 2022-03-30 15:05:31 -04:00
execution [libc++] Ensure that all public C++ headers include <__assert> 2022-03-30 15:05:31 -04:00
fenv.h [libc++] Normalize all our '#pragma GCC system_header', and regression-test. 2022-02-04 12:27:19 -05:00
filesystem [libc++] Improve error messages for disabled modes 2022-05-20 09:36:55 -04:00
float.h [libc++] Normalize all our '#pragma GCC system_header', and regression-test. 2022-02-04 12:27:19 -05:00
format [libc++][format][5/6] Improve format_to_n. 2022-05-18 20:14:32 +02:00
forward_list [libc++] Ensure that all public C++ headers include <__assert> 2022-03-30 15:05:31 -04:00
fstream [libc++] Towards a simpler extern template story in libc++ 2022-06-08 22:05:07 -04:00
functional [libc++] Ensure that all public C++ headers include <__assert> 2022-03-30 15:05:31 -04:00
future [libc++] Improve error messages for disabled modes 2022-05-20 09:36:55 -04:00
initializer_list [libc++] Ensure that all public C++ headers include <__assert> 2022-03-30 15:05:31 -04:00
inttypes.h [libc++] Normalize all our '#pragma GCC system_header', and regression-test. 2022-02-04 12:27:19 -05:00
iomanip [libc++] Granularize __string 2022-06-09 21:04:18 +02:00
ios [libc++] Improve error messages for disabled modes 2022-05-20 09:36:55 -04:00
iosfwd [libc++] Ensure that all public C++ headers include <__assert> 2022-03-30 15:05:31 -04:00
iostream [libc++] Ensure that all public C++ headers include <__assert> 2022-03-30 15:05:31 -04:00
istream [libc++] Towards a simpler extern template story in libc++ 2022-06-08 22:05:07 -04:00
iterator [libc++] Remove unused __functional includes 2022-05-28 10:12:39 +02:00
latch [libc++] Make sure that all headers can be included with modules enabled 2022-05-25 03:44:48 -04:00
limits [libc++] Ensure that all public C++ headers include <__assert> 2022-03-30 15:05:31 -04:00
limits.h [libc++] Normalize all our '#pragma GCC system_header', and regression-test. 2022-02-04 12:27:19 -05:00
list [libc++] Make the Debug mode a configuration-time only option 2022-06-07 16:33:53 -04:00
locale [libc++] Granularize __string 2022-06-09 21:04:18 +02:00
locale.h [libc++] Improve error messages for disabled modes 2022-05-20 09:36:55 -04:00
map [libc++] Remove unused __functional includes 2022-05-28 10:12:39 +02:00
math.h [libc++][AIX] Use C++ overloads from libc++'s math.h 2022-03-01 15:53:41 -05:00
memory [libc++] Remove unused __functional includes 2022-05-28 10:12:39 +02:00
module.modulemap.in [libc++] Granularize even more of type_traits 2022-06-10 11:56:38 +02:00
mutex [libc++] Remove <functional> includes 2022-04-26 08:54:37 +02:00
new [libc++] Ensure that all public C++ headers include <__assert> 2022-03-30 15:05:31 -04:00
numbers [libc++] Ensure that all public C++ headers include <__assert> 2022-03-30 15:05:31 -04:00
numeric [libc++] Remove <functional> includes 2022-04-26 08:54:37 +02:00
optional [libc++] Fix typo in comment at __optional_storage_base 2022-06-02 19:46:04 +02:00
ostream [libc++] Towards a simpler extern template story in libc++ 2022-06-08 22:05:07 -04:00
queue [libc++] Remove unused __functional includes 2022-05-28 10:12:39 +02:00
random [libc++] Ensure that all public C++ headers include <__assert> 2022-03-30 15:05:31 -04:00
ranges [libc++] add zip_view and views::zip for C++23 2022-04-25 12:22:22 +02:00
ratio [libc++] Ensure that all public C++ headers include <__assert> 2022-03-30 15:05:31 -04:00
regex [libc++] Granularize <functional> includes 2022-04-20 22:49:18 +02:00
scoped_allocator [libc++] Ensure that all public C++ headers include <__assert> 2022-03-30 15:05:31 -04:00
semaphore [libc++] Make sure that all headers can be included with modules enabled 2022-05-25 03:44:48 -04:00
set [libc++] Remove unused __functional includes 2022-05-28 10:12:39 +02:00
setjmp.h [libc++] Normalize all our '#pragma GCC system_header', and regression-test. 2022-02-04 12:27:19 -05:00
shared_mutex [libc++] Improve error messages for disabled modes 2022-05-20 09:36:55 -04:00
span [libc++] Make the Debug mode a configuration-time only option 2022-06-07 16:33:53 -04:00
sstream [libc++] Towards a simpler extern template story in libc++ 2022-06-08 22:05:07 -04:00
stack [libc++] Ensure that all public C++ headers include <__assert> 2022-03-30 15:05:31 -04:00
stdatomic.h [libc++] Remove overly conservative error in <stdatomic.h> 2022-05-16 15:30:01 -04:00
stdbool.h [libc++] Ensure that all public C++ headers include <__assert> 2022-03-30 15:05:31 -04:00
stddef.h [libc++] Remove the ability to use the std::nullptr_t emulation in C++03 mode 2022-02-07 17:51:05 -05:00
stdexcept [libc++] Ensure that all public C++ headers include <__assert> 2022-03-30 15:05:31 -04:00
stdint.h [libc++] Normalize all our '#pragma GCC system_header', and regression-test. 2022-02-04 12:27:19 -05:00
stdio.h [libc++] Normalize all our '#pragma GCC system_header', and regression-test. 2022-02-04 12:27:19 -05:00
stdlib.h [libc++] Normalize all our '#pragma GCC system_header', and regression-test. 2022-02-04 12:27:19 -05:00
streambuf [libc++] Towards a simpler extern template story in libc++ 2022-06-08 22:05:07 -04:00
string [libc++] Granularize __string 2022-06-09 21:04:18 +02:00
string.h [libc++] Normalize all our '#pragma GCC system_header', and regression-test. 2022-02-04 12:27:19 -05:00
string_view [libc++] Granularize __string 2022-06-09 21:04:18 +02:00
strstream [libc++] Ensure that all public C++ headers include <__assert> 2022-03-30 15:05:31 -04:00
system_error [libc++] Granularize __string 2022-06-09 21:04:18 +02:00
tgmath.h [libc++] Normalize all our '#pragma GCC system_header', and regression-test. 2022-02-04 12:27:19 -05:00
thread [libc++] Granularize __string 2022-06-09 21:04:18 +02:00
tuple [libc++] Remove unused __functional includes 2022-05-28 10:12:39 +02:00
type_traits [libc++] Remove uses of __two in type_traits 2022-06-10 19:56:59 +02:00
typeindex [libc++] Remove unused __functional includes 2022-05-28 10:12:39 +02:00
typeinfo [libc++] Ensure that all public C++ headers include <__assert> 2022-03-30 15:05:31 -04:00
uchar.h [libc++] Add missing header <cuchar> 2022-03-07 08:48:50 -05:00
unordered_map [libc++] Make the Debug mode a configuration-time only option 2022-06-07 16:33:53 -04:00
unordered_set [libc++] Make the Debug mode a configuration-time only option 2022-06-07 16:33:53 -04:00
utility [libc++] Granularize even more of type_traits 2022-06-10 11:56:38 +02:00
valarray [libc++] Towards a simpler extern template story in libc++ 2022-06-08 22:05:07 -04:00
variant [libc++] Remove unused __functional includes 2022-05-28 10:12:39 +02:00
vector [libc++] Make the Debug mode a configuration-time only option 2022-06-07 16:33:53 -04:00
version [libc++] Removes __cpp_lib_monadic_optional. 2022-05-31 19:18:34 +02:00
wchar.h [libc++] Normalize all our '#pragma GCC system_header', and regression-test. 2022-02-04 12:27:19 -05:00
wctype.h [libc++] Normalize all our '#pragma GCC system_header', and regression-test. 2022-02-04 12:27:19 -05:00