[libc++] Add concepts that ensure a given iterator meets the syntactic requirements
authorNikolas Klauser <n_klauser@apple.com>
Fri, 9 Jun 2023 15:38:07 +0000 (08:38 -0700)
committerNikolas Klauser <nikolasklauser@berlin.de>
Fri, 9 Jun 2023 15:38:22 +0000 (08:38 -0700)
commit6adb1ca555ec7e3ac8d9bc19d3a5710bd7964276
tree29c934514f8ef738949a72c19453d52681151673
parent18f5446a45da5a61dbfb1b7667d27fb441ac62db
[libc++] Add concepts that ensure a given iterator meets the syntactic requirements

These concepts are used to ensure valid iterators are passed to PSTL algorithms, but can also be used for other interfaces.

Reviewed By: ldionne, #libc

Spies: EricWF, libcxx-commits

Differential Revision: https://reviews.llvm.org/D150493
libcxx/include/CMakeLists.txt
libcxx/include/__algorithm/pstl_any_all_none_of.h
libcxx/include/__algorithm/pstl_fill.h
libcxx/include/__algorithm/pstl_find.h
libcxx/include/__algorithm/pstl_for_each.h
libcxx/include/__algorithm/pstl_transform.h
libcxx/include/__iterator/cpp17_iterator_concepts.h [new file with mode: 0644]
libcxx/include/module.modulemap.in
libcxx/test/libcxx/algorithms/cpp17_iterator_concepts.verify.cpp [new file with mode: 0644]