@@ -1110,8 +1110,8 @@ class concat_iterator
1110
1110
// / We need the full range to know how to switch between each of the
1111
1111
// / iterators.
1112
1112
template <typename ... RangeTs>
1113
- explicit concat_iterator (RangeTs &&... Ranges)
1114
- : Begins(std::begin (Ranges)...), Ends(std::end (Ranges)...) {}
1113
+ explicit concat_iterator (RangeTs &&...Ranges)
1114
+ : Begins(adl_begin (Ranges)...), Ends(adl_end (Ranges)...) {}
1115
1115
1116
1116
using BaseT::operator ++;
1117
1117
@@ -1140,26 +1140,25 @@ template <typename ValueT, typename... RangeTs> class concat_range {
1140
1140
public:
1141
1141
using iterator =
1142
1142
concat_iterator<ValueT,
1143
- decltype (std::begin (std::declval<RangeTs &>()))...>;
1143
+ decltype (adl_begin (std::declval<RangeTs &>()))...>;
1144
1144
1145
1145
private:
1146
1146
std::tuple<RangeTs...> Ranges;
1147
1147
1148
- template <size_t ... Ns>
1149
- iterator begin_impl (std::index_sequence<Ns...>) {
1148
+ template <size_t ... Ns> iterator begin_impl (std::index_sequence<Ns...>) {
1150
1149
return iterator (std::get<Ns>(Ranges)...);
1151
1150
}
1152
1151
template <size_t ... Ns>
1153
1152
iterator begin_impl (std::index_sequence<Ns...>) const {
1154
1153
return iterator (std::get<Ns>(Ranges)...);
1155
1154
}
1156
1155
template <size_t ... Ns> iterator end_impl (std::index_sequence<Ns...>) {
1157
- return iterator (make_range (std::end (std::get<Ns>(Ranges)),
1158
- std::end (std::get<Ns>(Ranges)))...);
1156
+ return iterator (make_range (adl_end (std::get<Ns>(Ranges)),
1157
+ adl_end (std::get<Ns>(Ranges)))...);
1159
1158
}
1160
1159
template <size_t ... Ns> iterator end_impl (std::index_sequence<Ns...>) const {
1161
- return iterator (make_range (std::end (std::get<Ns>(Ranges)),
1162
- std::end (std::get<Ns>(Ranges)))...);
1160
+ return iterator (make_range (adl_end (std::get<Ns>(Ranges)),
1161
+ adl_end (std::get<Ns>(Ranges)))...);
1163
1162
}
1164
1163
1165
1164
public:
0 commit comments