Skip to content

Commit 9c12f54

Browse files
philnik777Jaddyen
authored andcommitted
[libc++][NFC] Make __is_segmented_iterator a variable template (llvm#149976)
1 parent 2bfe0e2 commit 9c12f54

File tree

12 files changed

+23
-22
lines changed

12 files changed

+23
-22
lines changed

libcxx/include/__algorithm/copy.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -182,7 +182,7 @@ struct __copy_impl {
182182
}
183183
};
184184

185-
template <class _InIter, class _OutIter, __enable_if_t<__is_segmented_iterator<_InIter>::value, int> = 0>
185+
template <class _InIter, class _OutIter, __enable_if_t<__is_segmented_iterator_v<_InIter>, int> = 0>
186186
_LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX14 pair<_InIter, _OutIter>
187187
operator()(_InIter __first, _InIter __last, _OutIter __result) const {
188188
std::__for_each_segment(__first, __last, _CopySegment<_InIter, _OutIter>(__result));
@@ -192,7 +192,7 @@ struct __copy_impl {
192192
template <class _InIter,
193193
class _OutIter,
194194
__enable_if_t<__has_random_access_iterator_category<_InIter>::value &&
195-
!__is_segmented_iterator<_InIter>::value && __is_segmented_iterator<_OutIter>::value,
195+
!__is_segmented_iterator_v<_InIter> && __is_segmented_iterator_v<_OutIter>,
196196
int> = 0>
197197
_LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX14 pair<_InIter, _OutIter>
198198
operator()(_InIter __first, _InIter __last, _OutIter __result) const {

libcxx/include/__algorithm/copy_backward.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -170,7 +170,7 @@ struct __copy_backward_impl {
170170
return std::make_pair(std::move(__original_last_iter), std::move(__result));
171171
}
172172

173-
template <class _InIter, class _OutIter, __enable_if_t<__is_segmented_iterator<_InIter>::value, int> = 0>
173+
template <class _InIter, class _OutIter, __enable_if_t<__is_segmented_iterator_v<_InIter>, int> = 0>
174174
_LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX14 pair<_InIter, _OutIter>
175175
operator()(_InIter __first, _InIter __last, _OutIter __result) const {
176176
using _Traits = __segmented_iterator_traits<_InIter>;
@@ -200,7 +200,7 @@ struct __copy_backward_impl {
200200
template <class _InIter,
201201
class _OutIter,
202202
__enable_if_t<__has_random_access_iterator_category<_InIter>::value &&
203-
!__is_segmented_iterator<_InIter>::value && __is_segmented_iterator<_OutIter>::value,
203+
!__is_segmented_iterator_v<_InIter> && __is_segmented_iterator_v<_OutIter>,
204204
int> = 0>
205205
_LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX14 pair<_InIter, _OutIter>
206206
operator()(_InIter __first, _InIter __last, _OutIter __result) const {

libcxx/include/__algorithm/find.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -149,7 +149,7 @@ struct __find_segment;
149149
template <class _SegmentedIterator,
150150
class _Tp,
151151
class _Proj,
152-
__enable_if_t<__is_segmented_iterator<_SegmentedIterator>::value, int> = 0>
152+
__enable_if_t<__is_segmented_iterator_v<_SegmentedIterator>, int> = 0>
153153
_LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX14 _SegmentedIterator
154154
__find(_SegmentedIterator __first, _SegmentedIterator __last, const _Tp& __value, _Proj& __proj) {
155155
return std::__find_segment_if(std::move(__first), std::move(__last), __find_segment<_Tp>(__value), __proj);

libcxx/include/__algorithm/for_each.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ __for_each(_InputIterator __first, _Sent __last, _Func& __f, _Proj& __proj) {
3939
template <class _SegmentedIterator,
4040
class _Func,
4141
class _Proj,
42-
__enable_if_t<__is_segmented_iterator<_SegmentedIterator>::value, int> = 0>
42+
__enable_if_t<__is_segmented_iterator_v<_SegmentedIterator>, int> = 0>
4343
_LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX20 _SegmentedIterator
4444
__for_each(_SegmentedIterator __first, _SegmentedIterator __last, _Func& __func, _Proj& __proj) {
4545
using __local_iterator_t = typename __segmented_iterator_traits<_SegmentedIterator>::__local_iterator;

libcxx/include/__algorithm/for_each_n.h

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -37,8 +37,8 @@ template <class _InputIterator,
3737
class _Func,
3838
class _Proj,
3939
__enable_if_t<!__has_random_access_iterator_category<_InputIterator>::value &&
40-
_Or< _Not<__is_segmented_iterator<_InputIterator> >,
41-
_Not<__has_random_access_local_iterator<_InputIterator> > >::value,
40+
_Or<integral_constant<bool, !__is_segmented_iterator_v<_InputIterator> >,
41+
_Not<__has_random_access_local_iterator<_InputIterator> > >::value,
4242
int> = 0>
4343
_LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX20 _InputIterator
4444
__for_each_n(_InputIterator __first, _Size __orig_n, _Func& __f, _Proj& __proj) {
@@ -71,7 +71,7 @@ template <class _SegmentedIterator,
7171
class _Func,
7272
class _Proj,
7373
__enable_if_t<!__has_random_access_iterator_category<_SegmentedIterator>::value &&
74-
__is_segmented_iterator<_SegmentedIterator>::value &&
74+
__is_segmented_iterator_v<_SegmentedIterator> &&
7575
__has_random_access_iterator_category<
7676
typename __segmented_iterator_traits<_SegmentedIterator>::__local_iterator>::value,
7777
int> = 0>

libcxx/include/__algorithm/for_each_n_segment.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ _LIBCPP_BEGIN_NAMESPACE_STD
2727
template <class _SegmentedIterator, class _Size, class _Functor>
2828
_LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX14 _SegmentedIterator
2929
__for_each_n_segment(_SegmentedIterator __first, _Size __orig_n, _Functor __func) {
30-
static_assert(__is_segmented_iterator<_SegmentedIterator>::value &&
30+
static_assert(__is_segmented_iterator_v<_SegmentedIterator> &&
3131
__has_random_access_iterator_category<
3232
typename __segmented_iterator_traits<_SegmentedIterator>::__local_iterator>::value,
3333
"__for_each_n_segment only works with segmented iterators with random-access local iterators");

libcxx/include/__algorithm/move.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,7 @@ struct __move_impl {
6565
}
6666
};
6767

68-
template <class _InIter, class _OutIter, __enable_if_t<__is_segmented_iterator<_InIter>::value, int> = 0>
68+
template <class _InIter, class _OutIter, __enable_if_t<__is_segmented_iterator_v<_InIter>, int> = 0>
6969
_LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX14 pair<_InIter, _OutIter>
7070
operator()(_InIter __first, _InIter __last, _OutIter __result) const {
7171
std::__for_each_segment(__first, __last, _MoveSegment<_InIter, _OutIter>(__result));
@@ -75,7 +75,7 @@ struct __move_impl {
7575
template <class _InIter,
7676
class _OutIter,
7777
__enable_if_t<__has_random_access_iterator_category<_InIter>::value &&
78-
!__is_segmented_iterator<_InIter>::value && __is_segmented_iterator<_OutIter>::value,
78+
!__is_segmented_iterator_v<_InIter> && __is_segmented_iterator_v<_OutIter>,
7979
int> = 0>
8080
_LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX14 pair<_InIter, _OutIter>
8181
operator()(_InIter __first, _InIter __last, _OutIter __result) const {

libcxx/include/__algorithm/move_backward.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ struct __move_backward_impl {
5151
return std::make_pair(std::move(__original_last_iter), std::move(__result));
5252
}
5353

54-
template <class _InIter, class _OutIter, __enable_if_t<__is_segmented_iterator<_InIter>::value, int> = 0>
54+
template <class _InIter, class _OutIter, __enable_if_t<__is_segmented_iterator_v<_InIter>, int> = 0>
5555
_LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX14 pair<_InIter, _OutIter>
5656
operator()(_InIter __first, _InIter __last, _OutIter __result) const {
5757
using _Traits = __segmented_iterator_traits<_InIter>;
@@ -81,7 +81,7 @@ struct __move_backward_impl {
8181
template <class _InIter,
8282
class _OutIter,
8383
__enable_if_t<__has_random_access_iterator_category<_InIter>::value &&
84-
!__is_segmented_iterator<_InIter>::value && __is_segmented_iterator<_OutIter>::value,
84+
!__is_segmented_iterator_v<_InIter> && __is_segmented_iterator_v<_OutIter>,
8585
int> = 0>
8686
_LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX14 pair<_InIter, _OutIter>
8787
operator()(_InIter __first, _InIter __last, _OutIter __result) const {

libcxx/include/__iterator/segmented_iterator.h

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -67,13 +67,13 @@ struct __segmented_iterator_traits;
6767
*/
6868

6969
template <class _Tp, size_t = 0>
70-
struct __has_specialization : false_type {};
70+
inline const bool __has_specialization_v = false;
7171

7272
template <class _Tp>
73-
struct __has_specialization<_Tp, sizeof(_Tp) * 0> : true_type {};
73+
inline const bool __has_specialization_v<_Tp, sizeof(_Tp) * 0> = true;
7474

7575
template <class _Iterator>
76-
using __is_segmented_iterator _LIBCPP_NODEBUG = __has_specialization<__segmented_iterator_traits<_Iterator> >;
76+
inline const bool __is_segmented_iterator_v = __has_specialization_v<__segmented_iterator_traits<_Iterator> >;
7777

7878
template <class _SegmentedIterator>
7979
struct __has_random_access_local_iterator

libcxx/include/deque

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -461,9 +461,8 @@ private:
461461
__deque_iterator<_ValueType, _Pointer, _Reference, _MapPointer, _DiffType, _BlockSize>;
462462

463463
public:
464-
using __is_segmented_iterator _LIBCPP_NODEBUG = true_type;
465-
using __segment_iterator _LIBCPP_NODEBUG = _MapPointer;
466-
using __local_iterator _LIBCPP_NODEBUG = _Pointer;
464+
using __segment_iterator _LIBCPP_NODEBUG = _MapPointer;
465+
using __local_iterator _LIBCPP_NODEBUG = _Pointer;
467466

468467
static _LIBCPP_HIDE_FROM_ABI __segment_iterator __segment(_Iterator __iter) { return __iter.__m_iter_; }
469468
static _LIBCPP_HIDE_FROM_ABI __local_iterator __local(_Iterator __iter) { return __iter.__ptr_; }

0 commit comments

Comments
 (0)