|
| | common_iterator ()=default |
| |
| constexpr | common_iterator (I i) |
| |
| constexpr | common_iterator (S s) |
| |
| template<typename I2 , typename S2 , std::enable_if_t< conjunction< convertible_to< const I2 &, I >, convertible_to< const S2 &, S > >::value, int > = 0> |
| constexpr | common_iterator (const common_iterator< I2, S2 > &x) noexcept(conjunction< std::is_nothrow_constructible< I, const I2 & >, std::is_nothrow_constructible< S, const S2 & >>::value) |
| |
| template<typename I2 , typename S2 > |
| constexpr common_iterator & | operator= (const common_iterator< I2, S2 > &x) noexcept(conjunction< std::is_nothrow_constructible< I, const I2 & >, std::is_nothrow_assignable< I, const I2 & >, std::is_nothrow_constructible< S, const S2 & >, std::is_nothrow_assignable< S, const S2 & > >::value) |
| |
| constexpr decltype(auto) | operator* () |
| |
| template<typename I2 = I, std::enable_if_t< dereferenceable< const I2 >::value, int > = 0> |
| constexpr decltype(auto) | operator* () const |
| |
| template<typename I2 = I, std::enable_if_t< conjunction< indirectly_readable< const I2 >, disjunction< std::is_pointer< I2 >, has_operator_arrow< const I2 & >, std::is_reference< iter_reference_t< I2 >>, constructible_from< iter_value_t< I2 >, iter_reference_t< I2 >> > >::value, int > = 0> |
| constexpr auto | operator-> () const |
| |
| constexpr common_iterator & | operator++ () |
| |
| constexpr decltype(auto) | operator++ (int) |
| |
| template<typename Dummy = void, std::enable_if_t< conjunction< std::is_void< Dummy >, input_iterator< I > >::value, int > = 0> |
| constexpr decltype(auto) friend | iter_move (const common_iterator &i) noexcept(noexcept(ranges::iter_move(std::declval< const I & >()))) |
| |
|
| template<typename I2 , typename S2 , std::enable_if_t< conjunction< sentinel_for< S2, I >, sentinel_for< S, I2 >, negation< equality_comparable_with< I, I2 > > >::value, int > = 0> |
| constexpr friend bool | operator== (const common_iterator &x, const common_iterator< I2, S2 > &y) |
| |
| template<typename I2 , typename S2 , std::enable_if_t< conjunction< sentinel_for< S2, I >, sentinel_for< S, I2 >, negation< equality_comparable_with< I, I2 > > >::value, int > = 0> |
| constexpr friend bool | operator!= (const common_iterator &x, const common_iterator< I2, S2 > &y) |
| |
| template<typename I2 , typename S2 , std::enable_if_t< conjunction< sentinel_for< S2, I >, sentinel_for< S, I2 >, equality_comparable_with< I, I2 > >::value, int > = 0> |
| constexpr friend bool | operator== (const common_iterator &x, const common_iterator< I2, S2 > &y) |
| |
| template<typename I2 , typename S2 , std::enable_if_t< conjunction< sentinel_for< S2, I >, sentinel_for< S, I2 >, equality_comparable_with< I, I2 > >::value, int > = 0> |
| constexpr friend bool | operator!= (const common_iterator &x, const common_iterator< I2, S2 > &y) |
| |
| template<typename I2 , typename S2 , std::enable_if_t< conjunction< sized_sentinel_for< I2, I >, sized_sentinel_for< S2, I >, sentinel_for< S, I2 > >::value, int > = 0> |
| constexpr friend iter_difference_t< I2 > | operator- (const common_iterator &x, const common_iterator< I2, S2 > &y) |
| |
| template<typename I2 , typename S2 , std::enable_if_t< indirectly_swappable< I2, I > ::value, int > = 0> |
| constexpr friend void | iter_swap (const common_iterator &x, const common_iterator< I2, S2 > &y) noexcept(noexcept(ranges::iter_swap(std::declval< const I & >(), std::declval< const I2 & >()))) |
| |