@@ -67,7 +67,7 @@ _LIBCPP_BEGIN_NAMESPACE_STD
67
67
#if _LIBCPP_STD_VER >= 14
68
68
69
69
template <class _InputIterator , class _OutputIterator >
70
- _LIBCPP_HIDE_FROM_ABI pair<_OutputIterator, __iter_value_type<_InputIterator>>
70
+ _LIBCPP_HIDE_FROM_ABI constexpr pair<_OutputIterator, __iter_value_type<_InputIterator>>
71
71
__partial_sum_max (_InputIterator __first, _InputIterator __last, _OutputIterator __result) {
72
72
if (__first == __last)
73
73
return {__result, 0 };
@@ -109,15 +109,15 @@ struct __counting_sort_traits {
109
109
};
110
110
111
111
template <class _Radix , class _Integer >
112
- _LIBCPP_HIDE_FROM_ABI auto __nth_radix (size_t __radix_number, _Radix __radix, _Integer __n) {
112
+ _LIBCPP_HIDE_FROM_ABI constexpr auto __nth_radix (size_t __radix_number, _Radix __radix, _Integer __n) {
113
113
static_assert (is_unsigned<_Integer>::value);
114
114
using __traits = __counting_sort_traits<_Integer, _Radix>;
115
115
116
116
return __radix (static_cast <_Integer>(__n >> __traits::__radix_size * __radix_number));
117
117
}
118
118
119
119
template <class _ForwardIterator , class _Map , class _RandomAccessIterator >
120
- _LIBCPP_HIDE_FROM_ABI void
120
+ _LIBCPP_HIDE_FROM_ABI constexpr void
121
121
__collect (_ForwardIterator __first, _ForwardIterator __last, _Map __map, _RandomAccessIterator __counters) {
122
122
using __value_type = __iter_value_type<_ForwardIterator>;
123
123
using __traits = __counting_sort_traits<__value_type, _Map>;
@@ -129,7 +129,7 @@ __collect(_ForwardIterator __first, _ForwardIterator __last, _Map __map, _Random
129
129
}
130
130
131
131
template <class _ForwardIterator , class _RandomAccessIterator1 , class _Map , class _RandomAccessIterator2 >
132
- _LIBCPP_HIDE_FROM_ABI void
132
+ _LIBCPP_HIDE_FROM_ABI constexpr void
133
133
__dispose (_ForwardIterator __first,
134
134
_ForwardIterator __last,
135
135
_RandomAccessIterator1 __result,
@@ -147,7 +147,7 @@ template <class _ForwardIterator,
147
147
class _RandomAccessIterator1 ,
148
148
class _RandomAccessIterator2 ,
149
149
size_t ... _Radices>
150
- _LIBCPP_HIDE_FROM_ABI bool __collect_impl (
150
+ _LIBCPP_HIDE_FROM_ABI constexpr bool __collect_impl (
151
151
_ForwardIterator __first,
152
152
_ForwardIterator __last,
153
153
_Map __map,
@@ -177,7 +177,7 @@ _LIBCPP_HIDE_FROM_ABI bool __collect_impl(
177
177
}
178
178
179
179
template <class _ForwardIterator , class _Map , class _Radix , class _RandomAccessIterator1 , class _RandomAccessIterator2 >
180
- _LIBCPP_HIDE_FROM_ABI bool
180
+ _LIBCPP_HIDE_FROM_ABI constexpr bool
181
181
__collect (_ForwardIterator __first,
182
182
_ForwardIterator __last,
183
183
_Map __map,
@@ -191,7 +191,7 @@ __collect(_ForwardIterator __first,
191
191
}
192
192
193
193
template <class _BidirectionalIterator , class _RandomAccessIterator1 , class _Map , class _RandomAccessIterator2 >
194
- _LIBCPP_HIDE_FROM_ABI void __dispose_backward (
194
+ _LIBCPP_HIDE_FROM_ABI constexpr void __dispose_backward (
195
195
_BidirectionalIterator __first,
196
196
_BidirectionalIterator __last,
197
197
_RandomAccessIterator1 __result,
@@ -206,7 +206,7 @@ _LIBCPP_HIDE_FROM_ABI void __dispose_backward(
206
206
}
207
207
208
208
template <class _ForwardIterator , class _RandomAccessIterator , class _Map >
209
- _LIBCPP_HIDE_FROM_ABI _RandomAccessIterator
209
+ _LIBCPP_HIDE_FROM_ABI constexpr _RandomAccessIterator
210
210
__counting_sort_impl (_ForwardIterator __first, _ForwardIterator __last, _RandomAccessIterator __result, _Map __map) {
211
211
using __value_type = __iter_value_type<_ForwardIterator>;
212
212
using __traits = __counting_sort_traits<__value_type, _Map>;
@@ -225,7 +225,7 @@ template <class _RandomAccessIterator1,
225
225
class _Radix ,
226
226
enable_if_t < __radix_sort_traits<__iter_value_type<_RandomAccessIterator1>, _Map, _Radix>::__radix_count == 1 ,
227
227
int > = 0 >
228
- _LIBCPP_HIDE_FROM_ABI void __radix_sort_impl (
228
+ _LIBCPP_HIDE_FROM_ABI constexpr void __radix_sort_impl (
229
229
_RandomAccessIterator1 __first,
230
230
_RandomAccessIterator1 __last,
231
231
_RandomAccessIterator2 __buffer,
@@ -245,7 +245,7 @@ template <
245
245
class _Radix ,
246
246
enable_if_t < __radix_sort_traits<__iter_value_type<_RandomAccessIterator1>, _Map, _Radix>::__radix_count % 2 == 0 ,
247
247
int > = 0 >
248
- _LIBCPP_HIDE_FROM_ABI void __radix_sort_impl (
248
+ _LIBCPP_HIDE_FROM_ABI constexpr void __radix_sort_impl (
249
249
_RandomAccessIterator1 __first,
250
250
_RandomAccessIterator1 __last,
251
251
_RandomAccessIterator2 __buffer_begin,
@@ -307,7 +307,7 @@ struct __low_byte_fn {
307
307
};
308
308
309
309
template <class _RandomAccessIterator1 , class _RandomAccessIterator2 , class _Map , class _Radix >
310
- _LIBCPP_HIDE_FROM_ABI void
310
+ _LIBCPP_HIDE_FROM_ABI constexpr void
311
311
__radix_sort (_RandomAccessIterator1 __first,
312
312
_RandomAccessIterator1 __last,
313
313
_RandomAccessIterator2 __buffer,
@@ -318,7 +318,7 @@ __radix_sort(_RandomAccessIterator1 __first,
318
318
}
319
319
320
320
template <class _RandomAccessIterator1 , class _RandomAccessIterator2 >
321
- _LIBCPP_HIDE_FROM_ABI void
321
+ _LIBCPP_HIDE_FROM_ABI constexpr void
322
322
__radix_sort (_RandomAccessIterator1 __first, _RandomAccessIterator1 __last, _RandomAccessIterator2 __buffer) {
323
323
std::__radix_sort (__first, __last, __buffer, __identity{}, __low_byte_fn{});
324
324
}
0 commit comments