xref: /openbsd-src/gnu/llvm/libcxx/src/algorithm.cpp (revision 4bdff4bed0e3d54e55670334c7d0077db4170f86)
1*4bdff4beSrobert //===----------------------------------------------------------------------===//
246035553Spatrick //
346035553Spatrick // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
446035553Spatrick // See https://llvm.org/LICENSE.txt for license information.
546035553Spatrick // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
646035553Spatrick //
746035553Spatrick //===----------------------------------------------------------------------===//
846035553Spatrick 
9*4bdff4beSrobert #include <algorithm>
1046035553Spatrick 
1146035553Spatrick _LIBCPP_BEGIN_NAMESPACE_STD
1246035553Spatrick 
13*4bdff4beSrobert // TODO(varconst): this currently doesn't benefit `ranges::sort` because it uses `ranges::less` instead of `__less`.
14*4bdff4beSrobert 
1546035553Spatrick template void __sort<__less<char>&, char*>(char*, char*, __less<char>&);
16*4bdff4beSrobert #ifndef _LIBCPP_HAS_NO_WIDE_CHARACTERS
1746035553Spatrick template void __sort<__less<wchar_t>&, wchar_t*>(wchar_t*, wchar_t*, __less<wchar_t>&);
18*4bdff4beSrobert #endif
1946035553Spatrick template void __sort<__less<signed char>&, signed char*>(signed char*, signed char*, __less<signed char>&);
2046035553Spatrick template void __sort<__less<unsigned char>&, unsigned char*>(unsigned char*, unsigned char*, __less<unsigned char>&);
2146035553Spatrick template void __sort<__less<short>&, short*>(short*, short*, __less<short>&);
2246035553Spatrick template void __sort<__less<unsigned short>&, unsigned short*>(unsigned short*, unsigned short*, __less<unsigned short>&);
2346035553Spatrick template void __sort<__less<int>&, int*>(int*, int*, __less<int>&);
2446035553Spatrick template void __sort<__less<unsigned>&, unsigned*>(unsigned*, unsigned*, __less<unsigned>&);
2546035553Spatrick template void __sort<__less<long>&, long*>(long*, long*, __less<long>&);
2646035553Spatrick template void __sort<__less<unsigned long>&, unsigned long*>(unsigned long*, unsigned long*, __less<unsigned long>&);
2746035553Spatrick template void __sort<__less<long long>&, long long*>(long long*, long long*, __less<long long>&);
2846035553Spatrick template void __sort<__less<unsigned long long>&, unsigned long long*>(unsigned long long*, unsigned long long*, __less<unsigned long long>&);
2946035553Spatrick template void __sort<__less<float>&, float*>(float*, float*, __less<float>&);
3046035553Spatrick template void __sort<__less<double>&, double*>(double*, double*, __less<double>&);
3146035553Spatrick template void __sort<__less<long double>&, long double*>(long double*, long double*, __less<long double>&);
3246035553Spatrick 
3346035553Spatrick template bool __insertion_sort_incomplete<__less<char>&, char*>(char*, char*, __less<char>&);
34*4bdff4beSrobert #ifndef _LIBCPP_HAS_NO_WIDE_CHARACTERS
3546035553Spatrick template bool __insertion_sort_incomplete<__less<wchar_t>&, wchar_t*>(wchar_t*, wchar_t*, __less<wchar_t>&);
36*4bdff4beSrobert #endif
3746035553Spatrick template bool __insertion_sort_incomplete<__less<signed char>&, signed char*>(signed char*, signed char*, __less<signed char>&);
3846035553Spatrick template bool __insertion_sort_incomplete<__less<unsigned char>&, unsigned char*>(unsigned char*, unsigned char*, __less<unsigned char>&);
3946035553Spatrick template bool __insertion_sort_incomplete<__less<short>&, short*>(short*, short*, __less<short>&);
4046035553Spatrick template bool __insertion_sort_incomplete<__less<unsigned short>&, unsigned short*>(unsigned short*, unsigned short*, __less<unsigned short>&);
4146035553Spatrick template bool __insertion_sort_incomplete<__less<int>&, int*>(int*, int*, __less<int>&);
4246035553Spatrick template bool __insertion_sort_incomplete<__less<unsigned>&, unsigned*>(unsigned*, unsigned*, __less<unsigned>&);
4346035553Spatrick template bool __insertion_sort_incomplete<__less<long>&, long*>(long*, long*, __less<long>&);
4446035553Spatrick template bool __insertion_sort_incomplete<__less<unsigned long>&, unsigned long*>(unsigned long*, unsigned long*, __less<unsigned long>&);
4546035553Spatrick template bool __insertion_sort_incomplete<__less<long long>&, long long*>(long long*, long long*, __less<long long>&);
4646035553Spatrick template bool __insertion_sort_incomplete<__less<unsigned long long>&, unsigned long long*>(unsigned long long*, unsigned long long*, __less<unsigned long long>&);
4746035553Spatrick template bool __insertion_sort_incomplete<__less<float>&, float*>(float*, float*, __less<float>&);
4846035553Spatrick template bool __insertion_sort_incomplete<__less<double>&, double*>(double*, double*, __less<double>&);
4946035553Spatrick template bool __insertion_sort_incomplete<__less<long double>&, long double*>(long double*, long double*, __less<long double>&);
5046035553Spatrick 
5146035553Spatrick template unsigned __sort5<__less<long double>&, long double*>(long double*, long double*, long double*, long double*, long double*, __less<long double>&);
5246035553Spatrick 
5346035553Spatrick _LIBCPP_END_NAMESPACE_STD
54