__gnu_parallel::_IteratorPair< _Iterator1, _Iterator2, _IteratorCategory > Class Template Reference
Inheritance diagram for __gnu_parallel::_IteratorPair< _Iterator1, _Iterator2, _IteratorCategory >:
[legend]

## Public Types

typedef std::iterator_traits< _Iterator1 > | _TraitsType
typedef _TraitsType::difference_type | difference_type
typedef _Iterator1 | first_type
typedef _IteratorCategory | iterator_category
typedef _IteratorPair * | pointer
typedef _IteratorPair & | reference
typedef _Iterator2 | second_type
typedef void | value_type

## Public Member Functions

| _IteratorPair (const _Iterator1 &__first, const _Iterator2 &__second)
| operator _Iterator2 () const
_IteratorPair | operator+ (difference_type __delta) const
_IteratorPair & | operator++ ()
const _IteratorPair | operator++ (int)
difference_type | operator- (const _IteratorPair &__other) const
_IteratorPair & | operator-- ()
const _IteratorPair | operator-- (int)
_IteratorPair & | operator= (const _IteratorPair &__other)
constexpr void | swap (pair &__p) noexcept(__and_< __is_nothrow_swappable< _Iterator1 >, __is_nothrow_swappable< _Iterator2 >>::value)

## Public Attributes

_Iterator1 | first
_Iterator2 | second

## Related Functions

(Note that these are not member functions.)
constexpr pair< typename __decay_and_strip< _Iterator1 >::__type, typename __decay_and_strip< _Iterator2 >::__type > | make_pair (_Iterator1 &&__x, _Iterator2 &&__y)
constexpr enable_if< __and_< __is_swappable< _Iterator1 >, __is_swappable< _Iterator2 > >::value >::type | swap (pair< _Iterator1, _Iterator2 > &__x, pair< _Iterator1, _Iterator2 > &__y) noexcept(noexcept(__x.swap(__y)))
constexpr bool | operator== (const pair< _Iterator1, _Iterator2 > &__x, const pair< _Iterator1, _Iterator2 > &__y)
constexpr bool | operator< (const pair< _Iterator1, _Iterator2 > &__x, const pair< _Iterator1, _Iterator2 > &__y)
constexpr bool | operator!= (const pair< _Iterator1, _Iterator2 > &__x, const pair< _Iterator1, _Iterator2 > &__y)
constexpr bool | operator> (const pair< _Iterator1, _Iterator2 > &__x, const pair< _Iterator1, _Iterator2 > &__y)
constexpr bool | operator<= (const pair< _Iterator1, _Iterator2 > &__x, const pair< _Iterator1, _Iterator2 > &__y)
constexpr bool | operator>= (const pair< _Iterator1, _Iterator2 > &__x, const pair< _Iterator1, _Iterator2 > &__y)

## Detailed Description

### template<typename _Iterator1, typename _Iterator2, typename _IteratorCategory>
class __gnu_parallel::_IteratorPair< _Iterator1, _Iterator2, _IteratorCategory >

A pair of iterators. The usual iterator operations are applied to both child iterators.

Definition at line 45 of file iterator.h.

## Member Typedef Documentation

## first_type

typedef _Iterator1 std::pair< _Iterator1 , _Iterator2 >::first_type

inherited

The type of the `first` member.

Definition at line 214 of file stl_pair.h.

## second_type

typedef _Iterator2 std::pair< _Iterator1 , _Iterator2 >::second_type

inherited

The type of the `second` member.

Definition at line 215 of file stl_pair.h.

## Member Function Documentation

## swap()

constexpr void std::pair< _Iterator1 , _Iterator2 >::swap | ( | pair< _Iterator1, _Iterator2 > & | __p | ) |

inline constexpr noexcept inherited

Swap the first members and then the second members.

Definition at line 439 of file stl_pair.h.

## Friends And Related Function Documentation

## make_pair()

constexpr pair< typename __decay_and_strip< _Iterator1 >::__type, typename __decay_and_strip< _Iterator2 >::__type > make_pair | ( | _Iterator1 && | __x,
|  | _Iterator2 && | __y
| ) |  |

related

A convenience wrapper for creating a pair from two objects.

Parameters

  __x | The first object.
  __y | The second object.

Returns
  A newly-constructed pair<> object of the appropriate type.

The C++98 standard says the objects are passed by reference-to-const, but C++03 says they are passed by value (this was LWG issue #181).

Since C++11 they have been passed by forwarding reference and then forwarded to the new members of the pair. To create a pair with a member of reference type, pass a `reference_wrapper` to this function.

Definition at line 567 of file stl_pair.h.

## operator!=()

constexpr bool operator!= | ( | const pair< _Iterator1 , _Iterator2 > & | __x,
|  | const pair< _Iterator1 , _Iterator2 > & | __y
| ) |  |

related

Uses `operator==` to find the result.

Definition at line 496 of file stl_pair.h.

## operator<()

constexpr bool operator< | ( | const pair< _Iterator1 , _Iterator2 > & | __x,
|  | const pair< _Iterator1 , _Iterator2 > & | __y
| ) |  |

related

Defines a lexicographical order for pairs.

For two pairs of the same type, `P` is ordered before `Q` if `P.first` is less than `Q.first`, or if `P.first` and `Q.first` are equivalent (neither is less than the other) and `P.second` is less than `Q.second`.

Definition at line 488 of file stl_pair.h.

## operator<=()

constexpr bool operator<= | ( | const pair< _Iterator1 , _Iterator2 > & | __x,
|  | const pair< _Iterator1 , _Iterator2 > & | __y
| ) |  |

related

Uses `operator<` to find the result.

Definition at line 507 of file stl_pair.h.

## operator==()

constexpr bool operator== | ( | const pair< _Iterator1 , _Iterator2 > & | __x,
|  | const pair< _Iterator1 , _Iterator2 > & | __y
| ) |  |

related

Two pairs of the same type are equal iff their members are equal.

Definition at line 466 of file stl_pair.h.

## operator>()

constexpr bool operator> | ( | const pair< _Iterator1 , _Iterator2 > & | __x,
|  | const pair< _Iterator1 , _Iterator2 > & | __y
| ) |  |

related

Uses `operator<` to find the result.

Definition at line 502 of file stl_pair.h.

## operator>=()

constexpr bool operator>= | ( | const pair< _Iterator1 , _Iterator2 > & | __x,
|  | const pair< _Iterator1 , _Iterator2 > & | __y
| ) |  |

related

Uses `operator<` to find the result.

Definition at line 514 of file stl_pair.h.

## swap()

constexpr enable_if< __and_< __is_swappable< _Iterator1 >, __is_swappable< _Iterator2 > >::value >::type swap | ( | pair< _Iterator1 , _Iterator2 > & | __x,
|  | pair< _Iterator1 , _Iterator2 > & | __y
| ) |  |

related

Swap overload for pairs. Calls std::pair::swap().

Note
  This std::swap overload is not declared in C++03 mode, which has performance implications, e.g. see https://gcc.gnu.org/PR38466

Definition at line 533 of file stl_pair.h.

## Member Data Documentation

## first

_Iterator1 std::pair< _Iterator1 , _Iterator2 >::first

inherited

The first member.

Definition at line 217 of file stl_pair.h.

## second

_Iterator2 std::pair< _Iterator1 , _Iterator2 >::second

inherited

The second member.

Definition at line 218 of file stl_pair.h.

The documentation for this class was generated from the following file:

- iterator.h