.TH "__gnu_parallel::_IteratorPair< _Iterator1, _Iterator2, _IteratorCategory >" 3 "libstdc++" \" -*- nroff -*- .ad l .nh .SH NAME __gnu_parallel::_IteratorPair< _Iterator1, _Iterator2, _IteratorCategory > \- A pair of iterators\&. The usual iterator operations are applied to both child iterators\&. .SH SYNOPSIS .br .PP .PP \fR#include \fP .PP Inherits \fBstd::pair< _Iterator1, _Iterator2 >\fP\&. .SS "Public Types" .in +1c .ti -1c .RI "typedef \fBstd::iterator_traits\fP< _Iterator1 > \fB_TraitsType\fP" .br .ti -1c .RI "typedef _TraitsType::difference_type \fBdifference_type\fP" .br .ti -1c .RI "typedef _Iterator1 \fBfirst_type\fP" .br .RI "The type of the \fRfirst\fP member\&. " .ti -1c .RI "typedef _IteratorCategory \fBiterator_category\fP" .br .ti -1c .RI "typedef _IteratorPair * \fBpointer\fP" .br .ti -1c .RI "typedef _IteratorPair & \fBreference\fP" .br .ti -1c .RI "typedef _Iterator2 \fBsecond_type\fP" .br .RI "The type of the \fRsecond\fP member\&. " .ti -1c .RI "typedef void \fBvalue_type\fP" .br .in -1c .SS "Public Member Functions" .in +1c .ti -1c .RI "\fB_IteratorPair\fP (const _Iterator1 &__first, const _Iterator2 &__second)" .br .ti -1c .RI "constexpr \fBexplicit\fP (!_S_convertible< _U1 &, _U2 & >()) \fBpair\fP(\fBpair\fP< _U1" .br .ti -1c .RI "constexpr \fBexplicit\fP (!_S_convertible< _U1 &, _U2 & >()) \fBpair\fP(\fBpair\fP< _U1" .br .ti -1c .RI "constexpr _U2 &&constexpr \fBexplicit\fP (!_S_convertible< _U1 &, _U2 & >()) \fBpair\fP(\fBpair\fP< _U1" .br .RI "Converting constructor from a non-const \fRpair\fP lvalue\&. " .ti -1c .RI "constexpr _U2 &&constexpr \fBexplicit\fP (!_S_convertible< _U1 &, _U2 & >()) \fBpair\fP(\fBpair\fP< _U1" .br .RI "Converting constructor from a non-const \fRpair\fP lvalue\&. " .ti -1c .RI "constexpr \fBexplicit\fP (!_S_convertible< _U1, _U2 >()) \fBpair\fP(_U1 &&" .br .ti -1c .RI "constexpr \fBexplicit\fP (!_S_convertible< _U1, _U2 >()) \fBpair\fP(_U1 &&" .br .ti -1c .RI "constexpr \fBexplicit\fP (!_S_convertible< _U1, _U2 >()) \fBpair\fP(_U1 &&__x" .br .RI "Constructor accepting two values of arbitrary types\&. " .ti -1c .RI "constexpr \fBexplicit\fP (!_S_convertible< _U1, _U2 >()) \fBpair\fP(_U1 &&__x" .br .RI "Constructor accepting two values of arbitrary types\&. " .ti -1c .RI "constexpr \fBexplicit\fP (!_S_convertible< _U1, _U2 >()) \fBpair\fP(\fBpair\fP< _U1" .br .ti -1c .RI "constexpr \fBexplicit\fP (!_S_convertible< _U1, _U2 >()) \fBpair\fP(\fBpair\fP< _U1" .br .ti -1c .RI "constexpr _U2 &constexpr \fBexplicit\fP (!_S_convertible< _U1, _U2 >()) \fBpair\fP(\fBpair\fP< _U1" .br .RI "Converting constructor from a non-const \fRpair\fP rvalue\&. " .ti -1c .RI "constexpr _U2 &constexpr \fBexplicit\fP (!_S_convertible< _U1, _U2 >()) \fBpair\fP(\fBpair\fP< _U1" .br .RI "Converting constructor from a non-const \fRpair\fP rvalue\&. " .ti -1c .RI "constexpr \fBexplicit\fP (!_S_convertible< const _Iterator1 &, const _Iterator2 & >()) \fBpair\fP(const type_identity_t< _Iterator1 > &__x" .br .RI "Constructor accepting lvalues of \fRfirst_type\fP and \fRsecond_type\fP\&. " .ti -1c .RI "constexpr \fBexplicit\fP (!_S_convertible< const _Iterator1 &, const _Iterator2 & >()) \fBpair\fP(const type_identity_t< _Iterator1 > &__x" .br .RI "Constructor accepting lvalues of \fRfirst_type\fP and \fRsecond_type\fP\&. " .ti -1c .RI "constexpr \fBexplicit\fP (!_S_convertible< const _U1 &, const _U2 & >()) \fBpair\fP(const \fBpair\fP< _U1" .br .ti -1c .RI "constexpr \fBexplicit\fP (!_S_convertible< const _U1 &, const _U2 & >()) \fBpair\fP(const \fBpair\fP< _U1" .br .ti -1c .RI "constexpr _U2 &&constexpr \fBexplicit\fP (!_S_convertible< const _U1 &, const _U2 & >()) \fBpair\fP(const \fBpair\fP< _U1" .br .RI "Converting constructor from a const \fRpair\fP lvalue\&. " .ti -1c .RI "constexpr _U2 &&constexpr \fBexplicit\fP (!_S_convertible< const _U1 &, const _U2 & >()) \fBpair\fP(const \fBpair\fP< _U1" .br .RI "Converting constructor from a const \fRpair\fP lvalue\&. " .ti -1c .RI "constexpr \fBexplicit\fP (!_S_convertible< const _U1, const _U2 >()) \fBpair\fP(const \fBpair\fP< _U1" .br .ti -1c .RI "constexpr \fBexplicit\fP (!_S_convertible< const _U1, const _U2 >()) \fBpair\fP(const \fBpair\fP< _U1" .br .ti -1c .RI "constexpr _U2 &constexpr \fBexplicit\fP (!_S_convertible< const _U1, const _U2 >()) \fBpair\fP(const \fBpair\fP< _U1" .br .RI "Converting constructor from a const \fRpair\fP rvalue\&. " .ti -1c .RI "constexpr _U2 &constexpr \fBexplicit\fP (!_S_convertible< const _U1, const _U2 >()) \fBpair\fP(const \fBpair\fP< _U1" .br .RI "Converting constructor from a const \fRpair\fP rvalue\&. " .ti -1c .RI "constexpr \fBexplicit\fP (!_S_convertible_from_pair_like< _UPair >()) \fBpair\fP(_UPair &&)=delete" .br .ti -1c .RI "constexpr \fBexplicit\fP (!_S_convertible_from_pair_like< _UPair >()) \fBpair\fP(_UPair &&)=delete" .br .ti -1c .RI "constexpr _U2 &&constexpr \fBexplicit\fP (!_S_convertible_from_pair_like< _UPair >()) \fBpair\fP(_UPair &&__p)" .br .ti -1c .RI "constexpr _U2 &&constexpr \fBexplicit\fP (!_S_convertible_from_pair_like< _UPair >()) \fBpair\fP(_UPair &&__p)" .br .ti -1c .RI "constexpr \fBexplicit\fP (__not_< __and_< __is_implicitly_default_constructible< _Iterator1 >, __is_implicitly_default_constructible< _Iterator2 > > >()) \fBpair\fP() noexcept(is_nothrow_default_constructible_v< _Iterator1 > &&is_nothrow_default_constructible_v< _Iterator2 >)" .br .RI "Default constructor\&. " .ti -1c .RI "constexpr \fBexplicit\fP (__not_< __and_< __is_implicitly_default_constructible< _Iterator1 >, __is_implicitly_default_constructible< _Iterator2 > > >()) \fBpair\fP() noexcept(is_nothrow_default_constructible_v< _Iterator1 > &&is_nothrow_default_constructible_v< _Iterator2 >)" .br .RI "Default constructor\&. " .ti -1c .RI "constexpr _U2 &&constexpr _U2 &__p \fBnoexcept\fP (_S_nothrow_constructible< _U1 &, _U2 & >())" .br .ti -1c .RI "constexpr _U2 &&constexpr _U2 &__p \fBnoexcept\fP (_S_nothrow_constructible< _U1 &, _U2 & >())" .br .ti -1c .RI "constexpr _U2 &constexpr _U2 &&__p \fBnoexcept\fP (_S_nothrow_constructible< _U1, _U2 >())" .br .ti -1c .RI "constexpr _U2 &constexpr _U2 &&__p \fBnoexcept\fP (_S_nothrow_constructible< _U1, _U2 >())" .br .ti -1c .RI "constexpr _U2 &&__y \fBnoexcept\fP (_S_nothrow_constructible< _U1, _U2 >())" .br .ti -1c .RI "constexpr _U2 &&__y \fBnoexcept\fP (_S_nothrow_constructible< _U1, _U2 >())" .br .ti -1c .RI "constexpr const _Iterator2 &__y \fBnoexcept\fP (_S_nothrow_constructible< const _Iterator1 &, const _Iterator2 & >())" .br .ti -1c .RI "constexpr const _Iterator2 &__y \fBnoexcept\fP (_S_nothrow_constructible< const _Iterator1 &, const _Iterator2 & >())" .br .ti -1c .RI "constexpr _U2 &&constexpr _U2 &__p \fBnoexcept\fP (_S_nothrow_constructible< const _U1 &, const _U2 & >())" .br .ti -1c .RI "constexpr _U2 &&constexpr _U2 &__p \fBnoexcept\fP (_S_nothrow_constructible< const _U1 &, const _U2 & >())" .br .ti -1c .RI "constexpr _U2 &constexpr _U2 &&__p \fBnoexcept\fP (_S_nothrow_constructible< const _U1, const _U2 >())" .br .ti -1c .RI "constexpr _U2 &constexpr _U2 &&__p \fBnoexcept\fP (_S_nothrow_constructible< const _U1, const _U2 >())" .br .ti -1c .RI "\fBoperator _Iterator2\fP () const" .br .ti -1c .RI "_IteratorPair \fBoperator+\fP (difference_type __delta) const" .br .ti -1c .RI "_IteratorPair & \fBoperator++\fP ()" .br .ti -1c .RI "const _IteratorPair \fBoperator++\fP (int)" .br .ti -1c .RI "difference_type \fBoperator\-\fP (const _IteratorPair &__other) const" .br .ti -1c .RI "_IteratorPair & \fBoperator\-\-\fP ()" .br .ti -1c .RI "const _IteratorPair \fBoperator\-\-\fP (int)" .br .ti -1c .RI "_IteratorPair & \fBoperator=\fP (const _IteratorPair &__other)" .br .ti -1c .RI "constexpr void \fBswap\fP (const \fBpair\fP &__p) const noexcept(__and_v< __is_nothrow_swappable< const _Iterator1 >, __is_nothrow_swappable< const _Iterator2 > >)" .br .ti -1c .RI "constexpr void \fBswap\fP (const \fBpair\fP &__p) const noexcept(__and_v< __is_nothrow_swappable< const _Iterator1 >, __is_nothrow_swappable< const _Iterator2 > >)" .br .ti -1c .RI "constexpr void \fBswap\fP (\fBpair\fP &__p) noexcept(__and_< __is_nothrow_swappable< _Iterator1 >, __is_nothrow_swappable< _Iterator2 > >::value)" .br .RI "Swap the first members and then the second members\&. " .ti -1c .RI "constexpr void \fBswap\fP (\fBpair\fP &__p) noexcept(__and_< __is_nothrow_swappable< _Iterator1 >, __is_nothrow_swappable< _Iterator2 > >::value)" .br .RI "Swap the first members and then the second members\&. " .in -1c .SS "Public Attributes" .in +1c .ti -1c .RI "_Iterator1 \fBfirst\fP" .br .RI "The first member\&. " .ti -1c .RI "_Iterator1 \fBfirst\fP" .br .RI "The first member\&. " .ti -1c .RI "_Iterator2 \fBsecond\fP" .br .RI "The second member\&. " .ti -1c .RI "_Iterator2 \fBsecond\fP" .br .RI "The second member\&. " .in -1c .SS "Related Symbols" (Note that these are not member symbols\&.) .PP .RI "\fB\fP" .br .in +1c .in +1c .ti -1c .RI "constexpr enable_if< __and_< __is_swappable< _Iterator1 >, __is_swappable< _Iterator2 > >::value >::type \fBswap\fP (\fBpair\fP< _Iterator1, _Iterator2 > &__x, \fBpair\fP< _Iterator1, _Iterator2 > &__y) noexcept(noexcept(__x\&.swap(__y)))" .br .ti -1c .RI "constexpr enable_if< __and_< __is_swappable< _Iterator1 >, __is_swappable< _Iterator2 > >::value >::type \fBswap\fP (\fBpair\fP< _Iterator1, _Iterator2 > &__x, \fBpair\fP< _Iterator1, _Iterator2 > &__y) noexcept(noexcept(__x\&.swap(__y)))" .br .ti -1c .RI "constexpr bool \fBoperator==\fP (const \fBpair\fP< _Iterator1, _Iterator2 > &__x, const \fBpair\fP< _U1, _U2 > &__y)" .br .RI "Two pairs are equal iff their members are equal\&. " .ti -1c .RI "constexpr bool \fBoperator==\fP (const \fBpair\fP< _Iterator1, _Iterator2 > &__x, const \fBpair\fP< _U1, _U2 > &__y)" .br .RI "Two pairs are equal iff their members are equal\&. " .ti -1c .RI "constexpr common_comparison_category_t< __detail::__synth3way_t< _Iterator1, _U1 >, __detail::__synth3way_t< _Iterator2, _U2 > > \fBoperator<=>\fP (const \fBpair\fP< _Iterator1, _Iterator2 > &__x, const \fBpair\fP< _U1, _U2 > &__y)" .br .ti -1c .RI "constexpr common_comparison_category_t< __detail::__synth3way_t< _Iterator1, _U1 >, __detail::__synth3way_t< _Iterator2, _U2 > > \fBoperator<=>\fP (const \fBpair\fP< _Iterator1, _Iterator2 > &__x, const \fBpair\fP< _U1, _U2 > &__y)" .br .in -1c .in -1c .SH "Detailed Description" .PP .SS "template .br class __gnu_parallel::_IteratorPair< _Iterator1, _Iterator2, _IteratorCategory >"A pair of iterators\&. The usual iterator operations are applied to both child iterators\&. .SH "Member Typedef Documentation" .PP .SS "typedef _Iterator1 \fBstd::pair\fP< _Iterator1, _Iterator2 >::first_type\fR [inherited]\fP" .PP The type of the \fRfirst\fP member\&. .SS "typedef _Iterator2 \fBstd::pair\fP< _Iterator1, _Iterator2 >::second_type\fR [inherited]\fP" .PP The type of the \fRsecond\fP member\&. .SH "Member Function Documentation" .PP .SS "_U2 &&constexpr \fBstd::pair\fP< _Iterator1, _Iterator2 >::explicit (!_S_convertible< _U1 &, _U2 & > ())\fR [constexpr]\fP, \fR [inherited]\fP" .PP Converting constructor from a non-const \fRpair\fP lvalue\&. .SS "_U2 &&constexpr \fBstd::pair\fP< _Iterator1, _Iterator2 >::explicit (!_S_convertible< _U1 &, _U2 & > ())\fR [constexpr]\fP, \fR [inherited]\fP" .PP Converting constructor from a non-const \fRpair\fP lvalue\&. .SS "\fBstd::pair\fP< _Iterator1, _Iterator2 >::explicit (!_S_convertible< _U1, _U2 > ()) &&\fR [constexpr]\fP, \fR [inherited]\fP" .PP Constructor accepting two values of arbitrary types\&. .SS "\fBstd::pair\fP< _Iterator1, _Iterator2 >::explicit (!_S_convertible< _U1, _U2 > ()) &&\fR [constexpr]\fP, \fR [inherited]\fP" .PP Constructor accepting two values of arbitrary types\&. .SS "_U2 &constexpr \fBstd::pair\fP< _Iterator1, _Iterator2 >::explicit (!_S_convertible< _U1, _U2 > ())\fR [constexpr]\fP, \fR [inherited]\fP" .PP Converting constructor from a non-const \fRpair\fP rvalue\&. .SS "_U2 &constexpr \fBstd::pair\fP< _Iterator1, _Iterator2 >::explicit (!_S_convertible< _U1, _U2 > ())\fR [constexpr]\fP, \fR [inherited]\fP" .PP Converting constructor from a non-const \fRpair\fP rvalue\&. .SS "\fBstd::pair\fP< _Iterator1, _Iterator2 >::explicit (!_S_convertible< const _Iterator1 &, const _Iterator2 & > ()) const &\fR [constexpr]\fP, \fR [inherited]\fP" .PP Constructor accepting lvalues of \fRfirst_type\fP and \fRsecond_type\fP\&. .SS "\fBstd::pair\fP< _Iterator1, _Iterator2 >::explicit (!_S_convertible< const _Iterator1 &, const _Iterator2 & > ()) const &\fR [constexpr]\fP, \fR [inherited]\fP" .PP Constructor accepting lvalues of \fRfirst_type\fP and \fRsecond_type\fP\&. .SS "_U2 &&constexpr \fBstd::pair\fP< _Iterator1, _Iterator2 >::explicit (!_S_convertible< const _U1 &, const _U2 & > ()) const\fR [constexpr]\fP, \fR [inherited]\fP" .PP Converting constructor from a const \fRpair\fP lvalue\&. .SS "_U2 &&constexpr \fBstd::pair\fP< _Iterator1, _Iterator2 >::explicit (!_S_convertible< const _U1 &, const _U2 & > ()) const\fR [constexpr]\fP, \fR [inherited]\fP" .PP Converting constructor from a const \fRpair\fP lvalue\&. .SS "_U2 &constexpr \fBstd::pair\fP< _Iterator1, _Iterator2 >::explicit (!_S_convertible< const _U1, const _U2 > ()) const\fR [constexpr]\fP, \fR [inherited]\fP" .PP Converting constructor from a const \fRpair\fP rvalue\&. .SS "_U2 &constexpr \fBstd::pair\fP< _Iterator1, _Iterator2 >::explicit (!_S_convertible< const _U1, const _U2 > ()) const\fR [constexpr]\fP, \fR [inherited]\fP" .PP Converting constructor from a const \fRpair\fP rvalue\&. .SS "\fBstd::pair\fP< _Iterator1, _Iterator2 >::explicit (__not_< __and_< __is_implicitly_default_constructible< _Iterator1 >, __is_implicitly_default_constructible< _Iterator2 > > > ())\fR [inline]\fP, \fR [constexpr]\fP, \fR [noexcept]\fP, \fR [inherited]\fP" .PP Default constructor\&. .SS "\fBstd::pair\fP< _Iterator1, _Iterator2 >::explicit (__not_< __and_< __is_implicitly_default_constructible< _Iterator1 >, __is_implicitly_default_constructible< _Iterator2 > > > ())\fR [inline]\fP, \fR [constexpr]\fP, \fR [noexcept]\fP, \fR [inherited]\fP" .PP Default constructor\&. .SS "void \fBstd::pair\fP< _Iterator1, _Iterator2 >::swap (\fBpair\fP< _Iterator1, _Iterator2 > & __p)\fR [inline]\fP, \fR [constexpr]\fP, \fR [noexcept]\fP, \fR [inherited]\fP" .PP Swap the first members and then the second members\&. .SS "void \fBstd::pair\fP< _Iterator1, _Iterator2 >::swap (\fBpair\fP< _Iterator1, _Iterator2 > & __p)\fR [inline]\fP, \fR [constexpr]\fP, \fR [noexcept]\fP, \fR [inherited]\fP" .PP Swap the first members and then the second members\&. .SH "Friends And Related Symbol Documentation" .PP .SS "common_comparison_category_t< __detail::__synth3way_t< _Iterator1, _U1 >, __detail::__synth3way_t< _Iterator2, _U2 > > operator<=> (const \fBpair\fP< _Iterator1, _Iterator2 > & __x, const \fBpair\fP< _U1, _U2 > & __y)\fR [related]\fP" Defines a lexicographical order for pairs\&. .PP For two pairs of comparable types, \fRP\fP is ordered before \fRQ\fP if \fRP\&.first\fP is less than \fRQ\&.first\fP, or if \fRP\&.first\fP and \fRQ\&.first\fP are equivalent (neither is less than the other) and \fRP\&.second\fP is less than \fRQ\&.second\fP\&. .SS "common_comparison_category_t< __detail::__synth3way_t< _Iterator1, _U1 >, __detail::__synth3way_t< _Iterator2, _U2 > > operator<=> (const \fBpair\fP< _Iterator1, _Iterator2 > & __x, const \fBpair\fP< _U1, _U2 > & __y)\fR [related]\fP" Defines a lexicographical order for pairs\&. .PP For two pairs of comparable types, \fRP\fP is ordered before \fRQ\fP if \fRP\&.first\fP is less than \fRQ\&.first\fP, or if \fRP\&.first\fP and \fRQ\&.first\fP are equivalent (neither is less than the other) and \fRP\&.second\fP is less than \fRQ\&.second\fP\&. .SS "bool operator== (const \fBpair\fP< _Iterator1, _Iterator2 > & __x, const \fBpair\fP< _U1, _U2 > & __y)\fR [related]\fP" .PP Two pairs are equal iff their members are equal\&. .SS "bool operator== (const \fBpair\fP< _Iterator1, _Iterator2 > & __x, const \fBpair\fP< _U1, _U2 > & __y)\fR [related]\fP" .PP Two pairs are equal iff their members are equal\&. .SS "enable_if< __and_< __is_swappable< _Iterator1 >, __is_swappable< _Iterator2 > >::value >::type swap (\fBpair\fP< _Iterator1, _Iterator2 > & __x, \fBpair\fP< _Iterator1, _Iterator2 > & __y)\fR [related]\fP" Swap overload for pairs\&. Calls std::pair::swap()\&. .PP \fBNote\fP .RS 4 This std::swap overload is not declared in C++03 mode, which has performance implications, e\&.g\&. see https://gcc.gnu.org/PR38466 .RE .PP .SS "enable_if< __and_< __is_swappable< _Iterator1 >, __is_swappable< _Iterator2 > >::value >::type swap (\fBpair\fP< _Iterator1, _Iterator2 > & __x, \fBpair\fP< _Iterator1, _Iterator2 > & __y)\fR [related]\fP" Swap overload for pairs\&. Calls std::pair::swap()\&. .PP \fBNote\fP .RS 4 This std::swap overload is not declared in C++03 mode, which has performance implications, e\&.g\&. see https://gcc.gnu.org/PR38466 .RE .PP .SH "Member Data Documentation" .PP .SS "_Iterator1 \fBstd::pair\fP< _Iterator1, _Iterator2 >::first\fR [inherited]\fP" .PP The first member\&. .SS "_Iterator1 \fBstd::pair\fP< _Iterator1, _Iterator2 >::first\fR [inherited]\fP" .PP The first member\&. .SS "_Iterator2 \fBstd::pair\fP< _Iterator1, _Iterator2 >::second\fR [inherited]\fP" .PP The second member\&. .SS "_Iterator2 \fBstd::pair\fP< _Iterator1, _Iterator2 >::second\fR [inherited]\fP" .PP The second member\&. .SH "Author" .PP Generated automatically by Doxygen for libstdc++ from the source code\&.