Код: Выделить всё
template
concept container_compatible_range =
std::ranges::input_range && std::convertible_to;
template
struct Map {
using value_type = std::pair;
template
requires container_compatible_range
void insert_range_bad(R&& rg) {
for (value_type e : rg) {
// ~~~~
}
}
template
requires container_compatible_range
void insert_range_good(R&& rg) {
std::ranges::for_each(rg, [&](value_type e) {
// ~~~~
});
}
};
int main() {
Map m;
std::tuple a[2] = {}; // for example
m.insert_range_bad(a);
m.insert_range_good(a);
}
Что это за крайние случаи?
Подробнее здесь: https://stackoverflow.com/questions/792 ... lt-rg-fail
Мобильная версия