Код: Выделить всё
template requires (!view)
constexpr C to(R&& r, Args&&... args);
Однако его реализация использует range_value_t для получения типа элемента C, что делает C как минимум диапазоном с учетом ограничения range_value_t, что параметр шаблона R должен моделировать диапазон.
Итак, почему диапазоны::to так слабо ограничены параметром шаблона C?
Я заметил, что версия статьи R3 ограничивала C значением input_range, что, очевидно, было разумным, поскольку input_range гарантировал, что range_value_t был правильно сформирован, но в R4 это ограничение было удаленный. И я не нашел комментариев по поводу этого изменения.
Итак, каковы соображения по поводу удаления ограничения, согласно которому C должен быть input_range?
Есть ли практический пример преимуществ такого ослабления ограничений?
Подробнее здесь: https://stackoverflow.com/questions/737 ... be-a-range
Мобильная версия