|
constexpr | common_iterator (I i) |
|
constexpr | common_iterator (S s) |
|
template<class I2 , class S2 , class = enable_if_t<conjunction_v< bool_constant<convertible_to<const I2&, I>>, bool_constant<convertible_to<const S2&, S>> > >> |
constexpr | common_iterator (const common_iterator< I2, S2 > &other) |
|
template<class I2 , class S2 , class = enable_if_t<conjunction_v< bool_constant<convertible_to<const I2&, I>>, bool_constant<convertible_to<const S2&, S>>, bool_constant<assignable_from<I&, const I2&>>, bool_constant<assignable_from<S&, const S2&>> > >> |
constexpr common_iterator & | operator= (const common_iterator< I2, S2 > &other) |
|
constexpr decltype(auto) | operator* () |
|
template<bool Enable = Internal::dereferenceable<const I>, class = enable_if_t<Enable>> |
constexpr decltype(auto) | operator* () const |
|
template<bool Enable = conjunction_v< bool_constant<indirectly_readable<const I>>, disjunction< bool_constant<Internal::has_operator_arrow<const I>>, is_reference<iter_reference_t<I>>, bool_constant<constructible_from<iter_value_t<I>, iter_reference_t<I>>> > >, class = enable_if_t<Enable>> |
constexpr decltype(auto) | operator-> () const |
|
constexpr common_iterator & | operator++ () |
|
constexpr decltype(auto) | operator++ (int) |
|
|
template<class I2 , class S2 > |
constexpr auto | operator== (const common_iterator &x, const common_iterator< I2, S2 > &y) -> enable_if_t< conjunction_v< bool_constant< sentinel_for< S2, I > >, bool_constant< sentinel_for< S, I2 > >, bool_constant<!equality_comparable_with< I, I2 > > >, bool > |
|
template<class I2 , class S2 > |
constexpr auto | operator!= (const common_iterator &x, const common_iterator< I2, S2 > &y) -> enable_if_t< conjunction_v< bool_constant< sentinel_for< S2, I > >, bool_constant< sentinel_for< S, I2 > >, bool_constant<!equality_comparable_with< I, I2 > > >, bool > |
|
template<class I2 , class S2 > |
constexpr auto | operator== (const common_iterator &x, const common_iterator< I2, S2 > &y) -> enable_if_t< conjunction_v< bool_constant< sentinel_for< S2, I > >, bool_constant< sentinel_for< S, I2 > >, bool_constant< equality_comparable_with< I, I2 > > >, bool > |
|
template<class I2 , class S2 > |
constexpr auto | operator!= (const common_iterator &x, const common_iterator< I2, S2 > &y) -> enable_if_t< conjunction_v< bool_constant< sentinel_for< S2, I > >, bool_constant< sentinel_for< S, I2 > >, bool_constant< equality_comparable_with< I, I2 > > >, bool > |
|
template<class I2 , class S2 > |
constexpr auto | operator- (const common_iterator &x, const common_iterator< I2, S2 > &y) -> enable_if_t< conjunction_v< bool_constant< sized_sentinel_for< I2, I > >, bool_constant< sized_sentinel_for< S2, I > >, bool_constant< sized_sentinel_for< S, I2 > > >, iter_difference_t< I2 > > |
|
constexpr auto | iter_move (const common_iterator &i) noexcept(noexcept(ranges::iter_move(declval< const I & >()))) -> enable_if_t< input_iterator< I >, iter_rvalue_reference_t< I > > |
|
template<class I2 , class S2 , enable_if_t< indirectly_swappable< I2, I > > > |
constexpr void | iter_swap (const common_iterator &x, const common_iterator< I2, S2 > &y) noexcept(noexcept(ranges::iter_swap(declval< const I & >(), declval< const I2 & >()))) |
|