llvm-project/libcxx/include
Hui Xie 042dc3c46d [libc++] add zip_view and views::zip for C++23
- add zip_view and views::zip for C++23
- added unit tests
- implemented section 5.6 (zip) in P2321R2

I used clang-format to format the files but they look nothing like the rest of the code base. Manually indenting each line to match the styles sounds like an impossible task. Is there any clang-format file which can format it reasonable similar to the rest of the code base so that I can manually format the rest lines that look weird?

Reviewed By: ldionne, #libc, philnik, var-const

Spies: Mordante, philnik, libcxx-commits, mgorny

Differential Revision: https://reviews.llvm.org/D122806
2022-04-25 12:22:22 +02:00
..
__algorithm [libc++] Implement ranges::copy{, _n, _if, _backward} 2022-04-15 13:44:11 +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++] Revert "Protect users from relying on detail headers" & related changes 2022-03-01 08:20:24 -05: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++] Make __dir_stream visibility declaration consistent 2022-03-15 19:30:35 +01:00
__format [libc++] Fixes concepts overload resolution. 2022-04-23 18:19:11 +02:00
__functional [libc++][ranges] Implement ranges::minmax and ranges::minmax_element 2022-04-14 15:37:22 +02:00
__ios [libc++] Revert "Protect users from relying on detail headers" & related changes 2022-03-01 08:20:24 -05:00
__iterator [libc++] Post-commit adjustments after rebasing D117656 2022-04-13 09:51:43 -04:00
__memory [libc++] Define legacy symbols for inline functions at a finer-grained level 2022-04-12 13:44:30 -04:00
__numeric [libc++] Revert "Protect users from relying on detail headers" & related changes 2022-03-01 08:20:24 -05:00
__random [libc++] Define _LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER whenever we enable warnings in the test suite 2022-03-15 17:17:54 -04:00
__ranges [libc++] add zip_view and views::zip for C++23 2022-04-25 12:22:22 +02:00
__support [libcxx] Add some missing xlocale wrapper functions for OpenBSD 2022-04-21 20:00:59 -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++] Add __is_callable type trait and begin granularizing type_traits 2022-04-08 12:23:52 +02:00
__utility [libc++] Replace _LIBCPP_HAS_NO_CONCEPTS with _LIBCPP_STD_VER > 17. NFCI. 2022-03-13 12:32:06 -04:00
__variant [libc++] Revert "Protect users from relying on detail headers" & related changes 2022-03-01 08:20:24 -05:00
experimental [libc++] Granularize <functional> includes 2022-04-20 22:49:18 +02:00
ext [libc++] Granularize <functional> includes 2022-04-20 22:49:18 +02:00
CMakeLists.txt [libc++] add zip_view and views::zip for C++23 2022-04-25 12:22:22 +02:00
__assert [libcxx] Add flag to disable __builtin_assume in _LIBCPP_ASSERT 2022-04-07 09:00:31 -07:00
__availability [libc++] Add a lightweight overridable assertion handler 2022-03-23 15:35:46 -04:00
__bit_reference [libc++] Change vector<bool>::const_iterator::reference to bool in ABIv2 2022-04-22 20:57:30 +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 [libcxx] random_device, use arc4random() on FreeBSD, NetBSD and DragonFlyBSD 2022-04-24 21:45:49 -04:00
__config_site.in [libc++] Add a lightweight overridable assertion handler 2022-03-23 15:35:46 -04:00
__debug [libc++] Remove unused <iosfwd> include from <__debug> 2022-04-03 16:15:48 -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++] Audit all uses of _LIBCPP_ASSERT and _LIBCPP_DEBUG_ASSERT 2022-03-24 13:13:21 -04:00
__locale [libc++] Remove <utility> includes 2022-03-17 00:12:33 +01: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
__string [libc++] Remove raw call to debug handler from __char_traits_length_checked 2022-03-11 09:05:29 -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++] Granularize <utility> includes 2022-03-05 19:31:46 +01:00
__tuple [libc++] Revert "Protect users from relying on detail headers" & related changes 2022-03-01 08:20:24 -05:00
__undef_macros [runtimes][NFC] Remove filenames at the top of the license notice 2021-11-17 16:30:52 -05:00
algorithm [libc++] Granularize <functional> includes 2022-04-20 22:49:18 +02:00
any [libc++] Ensure that all public C++ headers include <__assert> 2022-03-30 15:05:31 -04:00
array [libc++] Ensure that all public C++ headers include <__assert> 2022-03-30 15:05:31 -04:00
atomic [libc++] Ensure that all public C++ headers include <__assert> 2022-03-30 15:05:31 -04:00
barrier [libc++] Ensure that all public C++ headers include <__assert> 2022-03-30 15:05:31 -04:00
bit [libc++] Ensure that all public C++ headers include <__assert> 2022-03-30 15:05:31 -04:00
bitset [libc++] `bitset::operator[] const` should return bool 2022-04-13 22:55:04 +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++] Ensure that all public C++ headers include <__assert> 2022-03-30 15:05:31 -04: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++] Ensure that all public C++ headers include <__assert> 2022-03-30 15:05:31 -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++] Ensure that all public C++ headers include <__assert> 2022-03-30 15:05:31 -04: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++] Ensure that all public C++ headers include <__assert> 2022-03-30 15:05:31 -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][4/6] Improve formatted_size. 2022-04-09 09:36:29 +02:00
forward_list [libc++] Ensure that all public C++ headers include <__assert> 2022-03-30 15:05:31 -04:00
fstream [libc++] Fix undefined behavior in `std::filebuf` 2022-04-14 16:20:51 +02:00
functional [libc++] Ensure that all public C++ headers include <__assert> 2022-03-30 15:05:31 -04:00
future [libc++] Ensure that all public C++ headers include <__assert> 2022-03-30 15:05:31 -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++] Ensure that all public C++ headers include <__assert> 2022-03-30 15:05:31 -04:00
ios [libc++] Ensure that all public C++ headers include <__assert> 2022-03-30 15:05:31 -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++] Ensure that all public C++ headers include <__assert> 2022-03-30 15:05:31 -04:00
iterator Implement move_sentinel and C++20 move_iterator. 2022-04-13 09:51:43 -04:00
latch [libc++] Ensure that all public C++ headers include <__assert> 2022-03-30 15:05:31 -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++][format][3/6] Adds a __container_buffer. 2022-04-09 09:35:48 +02:00
locale [libc++] Ensure that all public C++ headers include <__assert> 2022-03-30 15:05:31 -04:00
locale.h [libc++] Normalize all our '#pragma GCC system_header', and regression-test. 2022-02-04 12:27:19 -05:00
map [libc++] Granularize <functional> includes 2022-04-20 22:49:18 +02:00
math.h [libc++][AIX] Use C++ overloads from libc++'s math.h 2022-03-01 15:53:41 -05:00
memory [libc++] Implement P1007R3: std::assume_aligned 2022-04-11 10:46:52 -04:00
module.modulemap [libc++] add zip_view and views::zip for C++23 2022-04-25 12:22:22 +02:00
mutex [libc++] Granularize <functional> includes 2022-04-20 22:49:18 +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++] Granularize <functional> includes 2022-04-20 22:49:18 +02:00
optional [libc++] Granularize <functional> includes 2022-04-20 22:49:18 +02:00
ostream [libc++] Ensure that all public C++ headers include <__assert> 2022-03-30 15:05:31 -04:00
queue [libc++] Granularize <functional> includes 2022-04-20 22:49:18 +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++] Ensure that all public C++ headers include <__assert> 2022-03-30 15:05:31 -04:00
set [libc++] Granularize <functional> includes 2022-04-20 22:49:18 +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++] Ensure that all public C++ headers include <__assert> 2022-03-30 15:05:31 -04:00
span [libc++] Ensure that all public C++ headers include <__assert> 2022-03-30 15:05:31 -04:00
sstream [libc++] Ensure that all public C++ headers include <__assert> 2022-03-30 15:05:31 -04:00
stack [libc++] Ensure that all public C++ headers include <__assert> 2022-03-30 15:05:31 -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++] Ensure that all public C++ headers include <__assert> 2022-03-30 15:05:31 -04:00
string [libc++] Use bit field for checking if string is in long or short mode 2022-04-21 14:20:21 +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++] Ensure that all public C++ headers include <__assert> 2022-03-30 15:05:31 -04:00
strstream [libc++] Ensure that all public C++ headers include <__assert> 2022-03-30 15:05:31 -04:00
system_error [libc++] Define legacy symbols for inline functions at a finer-grained level 2022-04-12 13:44:30 -04: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 <functional> includes 2022-04-20 22:49:18 +02:00
tuple [libc++] Remove redundant __invoke_constexpr functions 2022-04-07 13:56:11 +02:00
type_traits [libc++][ranges] Implement ranges::minmax and ranges::minmax_element 2022-04-14 15:37:22 +02:00
typeindex [libc++] Ensure that all public C++ headers include <__assert> 2022-03-30 15:05:31 -04: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++] Granularize <functional> includes 2022-04-20 22:49:18 +02:00
unordered_set [libc++] Granularize <functional> includes 2022-04-20 22:49:18 +02:00
utility [libc++] Ensure that all public C++ headers include <__assert> 2022-03-30 15:05:31 -04:00
valarray [libc++] Granularize <functional> includes 2022-04-20 22:49:18 +02:00
variant [libc++] Remove redundant __invoke_constexpr functions 2022-04-07 13:56:11 +02:00
vector [libc++] `bitset::operator[] const` should return bool 2022-04-13 22:55:04 +02:00
version [libc++] Implement P1007R3: std::assume_aligned 2022-04-11 10:46:52 -04: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