@@ -85,11 +85,9 @@ using std::empty;
85
85
// / @{
86
86
// used by every iterator up to and including bidirectional iterators
87
87
template <std::input_iterator iterator_t >
88
- DETRAY_HOST_DEVICE constexpr
89
- typename std::iterator_traits<iterator_t >::difference_type
90
- distance_impl (iterator_t first, iterator_t last,
91
- detray::ranges::input_iterator_tag) {
92
- typename std::iterator_traits<iterator_t >::difference_type d{0 };
88
+ DETRAY_HOST_DEVICE constexpr std::iter_difference_t <iterator_t > distance_impl (
89
+ iterator_t first, iterator_t last, detray::ranges::input_iterator_tag) {
90
+ std::iter_difference_t <iterator_t > d{0 };
93
91
// simply count
94
92
while (first != last) {
95
93
++first;
@@ -100,18 +98,16 @@ DETRAY_HOST_DEVICE constexpr
100
98
101
99
// random access iterators specialization
102
100
template <std::random_access_iterator iterator_t >
103
- DETRAY_HOST_DEVICE constexpr
104
- typename std::iterator_traits<iterator_t >::difference_type
105
- distance_impl (iterator_t first, iterator_t last,
106
- detray::ranges::random_access_iterator_tag) {
101
+ DETRAY_HOST_DEVICE constexpr std::iter_difference_t <iterator_t > distance_impl (
102
+ iterator_t first, iterator_t last,
103
+ detray::ranges::random_access_iterator_tag) {
107
104
// use operator-
108
105
return last - first;
109
106
}
110
107
111
108
template <std::input_iterator iterator_t >
112
- DETRAY_HOST_DEVICE constexpr
113
- typename std::iterator_traits<iterator_t >::difference_type
114
- distance (iterator_t first, iterator_t last) {
109
+ DETRAY_HOST_DEVICE constexpr std::iter_difference_t <iterator_t > distance (
110
+ iterator_t first, iterator_t last) {
115
111
return distance_impl (
116
112
first, last,
117
113
typename std::iterator_traits<iterator_t >::iterator_category{});
@@ -166,16 +162,14 @@ DETRAY_HOST_DEVICE constexpr void advance(iterator_t& itr, dist_t d) {
166
162
// / @{
167
163
template <std::input_iterator iterator_t >
168
164
DETRAY_HOST_DEVICE constexpr iterator_t next (
169
- iterator_t itr,
170
- typename std::iterator_traits<iterator_t >::difference_type d = 1 ) {
165
+ iterator_t itr, std::iter_difference_t <iterator_t > d = 1 ) {
171
166
detray::ranges::detail::advance (itr, d);
172
167
return itr;
173
168
}
174
169
175
170
template <std::bidirectional_iterator iterator_t >
176
171
DETRAY_HOST_DEVICE constexpr iterator_t prev (
177
- iterator_t itr,
178
- typename std::iterator_traits<iterator_t >::difference_type d = 1 ) {
172
+ iterator_t itr, std::iter_difference_t <iterator_t > d = 1 ) {
179
173
detray::ranges::detail::advance (itr, -d);
180
174
return itr;
181
175
}
0 commit comments