@@ -70,14 +70,14 @@ constexpr auto mm_per_inch = cm_per_inch * 10;
70
70
template <typename iterator_type>
71
71
iterator_type next (iterator_type iter, size_t n)
72
72
{
73
- constexpr auto max_advance =
74
- std::numeric_limits<typename std::iterator_traits<iterator_type>:: difference_type>::max ();
73
+ using difference_type = typename std::iterator_traits<iterator_type>::difference_type;
74
+ constexpr auto max_advance = std::numeric_limits<difference_type>::max ();
75
75
for (size_t num_left = n;;) {
76
76
if (num_left > size_t (max_advance)) {
77
77
num_left -= max_advance;
78
78
iter = std::next (iter, max_advance);
79
79
} else {
80
- return std::next (iter, num_left);
80
+ return std::next (iter, difference_type ( num_left) );
81
81
}
82
82
}
83
83
}
@@ -93,13 +93,14 @@ iterator_type next(iterator_type iter, size_t n)
93
93
template <typename iterator_type>
94
94
iterator_type prev (iterator_type iter, size_t n)
95
95
{
96
- const auto max_advance = std::numeric_limits<typename std::iterator_traits<iterator_type>::difference_type>::max ();
96
+ using difference_type = typename std::iterator_traits<iterator_type>::difference_type;
97
+ const auto max_advance = std::numeric_limits<difference_type>::max ();
97
98
for (size_t num_left = n;;) {
98
99
if (num_left > size_t (max_advance)) {
99
100
num_left -= max_advance;
100
101
iter = std::prev (iter, max_advance);
101
102
} else {
102
- return std::prev (iter, num_left);
103
+ return std::prev (iter, difference_type ( num_left) );
103
104
}
104
105
}
105
106
}
0 commit comments