Open
Description
Заменить
template< class S, class I >
concept sentinel_for =
std::semiregular<S> &&
std::input_or_output_iterator<I> &&
__WeaklyEqualityComparableWith<S, I>;
на
template< class S, class I >
concept sentinel_for =
std::copyable<S> &&
std::input_or_output_iterator<I> &&
__WeaklyEqualityComparableWith<S, I>;
, тем самым убрав требование на default constructible
, тем же образом, каким P2325R3 убрало это требование из итераторов. Аналогично P2325R3, в этом требовании нет особого смысла, но зато итераторы, возвращаемые из .end()
, которые не являются default constructible
, не могут быть использованы в std::ranges::end
, что мешает некоторым диапазонам удовлетворять std::ranges::range
(я лично столкнулся с этим в библиотеке sqlpp11).
Metadata
Metadata
Assignees
Labels
No labels