llvm-project/libcxx/include
Nikolas Klauser 971e9c80e9 [libc++] Implement std::boyer_moore{, _horspool}_searcher
This mostly copys the `<experimental/functional>` stuff and updates the code to current libc++ style.

Reviewed By: ldionne, #libc

Spies: nlopes, adamdebreceni, arichardson, libcxx-commits, mgorny

Differential Revision: https://reviews.llvm.org/D121074
2022-06-17 19:09:40 +02:00
..
__algorithm [libc++] Unwrap reverse_iterator<reverse_iterator<Iter>> in __unwrap_iter 2022-06-17 18:47:18 +02:00
__bit [libc++][NFC] Use concepts in <bit>. 2022-06-13 18:17:48 +02: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++][format] Implement format-string. 2022-06-11 15:25:56 +02:00
__functional [libc++] Implement std::boyer_moore{, _horspool}_searcher 2022-06-17 19:09:40 +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++] Unwrap reverse_iterator<reverse_iterator<Iter>> in __unwrap_iter 2022-06-17 18:47:18 +02:00
__memory [libc++] Implement std::boyer_moore{, _horspool}_searcher 2022-06-17 19:09:40 +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++] Remove macros for IBM compiler 2022-06-14 09:15:41 -04: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++] Implement std::boyer_moore{, _horspool}_searcher 2022-06-17 19:09:40 +02:00
__utility [libc++] Remove macros for IBM compiler 2022-06-14 09:15:41 -04:00
__variant [libc++] Revert "Protect users from relying on detail headers" & related changes 2022-03-01 08:20:24 -05:00
experimental [libc++] Implement std::boyer_moore{, _horspool}_searcher 2022-06-17 19:09:40 +02:00
ext [libc++] Removes unneeded <iterator> includes. 2022-06-15 18:14:05 +02:00
CMakeLists.txt [libc++] Implement std::boyer_moore{, _horspool}_searcher 2022-06-17 19:09:40 +02: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++] Implement std::boyer_moore{, _horspool}_searcher 2022-06-17 19:09:40 +02: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++] Granularize <iterator> includes 2022-06-10 22:43:57 +02: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++] Removes a GCC bug work-around. 2022-06-13 17:55:43 +02: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++][ranges] Implement `ranges::sort`. 2022-06-16 15:21:06 -07:00
any [libc++] Granularize <iterator> includes 2022-06-10 22:43:57 +02:00
array [libc++] Removes unneeded <iterator> includes. 2022-06-15 18:14:05 +02: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++][NFC] Use concepts in <bit>. 2022-06-13 18:17:48 +02: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++] Removes unneeded <iterator> includes. 2022-06-15 18:14:05 +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++] Removes unneeded <iterator> includes. 2022-06-15 18:14:05 +02:00
forward_list [libc++] Removes unneeded <iterator> includes. 2022-06-15 18:14:05 +02:00
fstream [libc++] Towards a simpler extern template story in libc++ 2022-06-08 22:05:07 -04:00
functional [libc++] Implement std::boyer_moore{, _horspool}_searcher 2022-06-17 19:09:40 +02: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++] Remove macros for IBM compiler 2022-06-14 09:15:41 -04:00
iostream [libc++] Ensure that all public C++ headers include <__assert> 2022-03-30 15:05:31 -04:00
istream [libc++] Granularize <iterator> includes 2022-06-10 22:43:57 +02:00
iterator [libc++] Removes unneeded includes. 2022-06-13 17:56:50 +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++] Removes unneeded <iterator> includes. 2022-06-15 18:14:05 +02:00
locale [libc++] Removes unneeded <iterator> includes. 2022-06-15 18:14:05 +02:00
locale.h [libc++] Improve error messages for disabled modes 2022-05-20 09:36:55 -04:00
map [libc++] Removes unneeded <iterator> includes. 2022-06-15 18:14:05 +02:00
math.h [libc++][AIX] Use C++ overloads from libc++'s math.h 2022-03-01 15:53:41 -05:00
memory [libc++] Removes unneeded <iterator> includes. 2022-06-15 18:14:05 +02:00
module.modulemap.in [libc++] Implement std::boyer_moore{, _horspool}_searcher 2022-06-17 19:09:40 +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++] Removes unneeded <iterator> includes. 2022-06-15 18:14:05 +02:00
optional [libc++] Removes unneeded includes. 2022-06-13 17:56:50 +02:00
ostream [libc++] Removes unneeded <iterator> includes. 2022-06-15 18:14:05 +02: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++] Removes unneeded <iterator> includes. 2022-06-15 18:14:05 +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++] Removes unneeded <iterator> includes. 2022-06-15 18:14:05 +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++] Removes unneeded <iterator> includes. 2022-06-15 18:14:05 +02: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++] Removes unneeded <iterator> includes. 2022-06-15 18:14:05 +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++] Removes unneeded <iterator> includes. 2022-06-15 18:14:05 +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++] Removes unneeded includes. 2022-06-13 17:56:50 +02:00
type_traits [libc++] Granularize some more of <type_traits> 2022-06-13 21:37:26 +02:00
typeindex [libc++] Removes unneeded includes. 2022-06-13 17:56:50 +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++] Removes unneeded <iterator> includes. 2022-06-15 18:14:05 +02:00
unordered_set [libc++] Removes unneeded <iterator> includes. 2022-06-15 18:14:05 +02: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++] Removes unneeded includes. 2022-06-13 17:56:50 +02:00
vector [libc++] Removes unneeded includes. 2022-06-13 17:56:50 +02:00
version [libc++] Implement std::boyer_moore{, _horspool}_searcher 2022-06-17 19:09:40 +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