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