.TH "__gnu_parallel::_IteratorPair< _Iterator1, _Iterator2, _IteratorCategory >" 3cxx "Tue Jul 18 2023" "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 \fC#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 \fCfirst\fP member\&. " .ti -1c .RI "typedef _IteratorCategory \fBiterator_category\fP" .br .ti -1c .RI "typedef \fB_IteratorPair\fP * \fBpointer\fP" .br .ti -1c .RI "typedef \fB_IteratorPair\fP & \fBreference\fP" .br .ti -1c .RI "typedef _Iterator2 \fBsecond_type\fP" .br .RI "The type of the \fCsecond\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 "\fBoperator _Iterator2\fP () const" .br .ti -1c .RI "\fB_IteratorPair\fP \fBoperator+\fP (difference_type __delta) const" .br .ti -1c .RI "\fB_IteratorPair\fP & \fBoperator++\fP ()" .br .ti -1c .RI "const \fB_IteratorPair\fP \fBoperator++\fP (int)" .br .ti -1c .RI "difference_type \fBoperator\-\fP (const \fB_IteratorPair\fP &__other) const" .br .ti -1c .RI "\fB_IteratorPair\fP & \fBoperator\-\-\fP ()" .br .ti -1c .RI "const \fB_IteratorPair\fP \fBoperator\-\-\fP (int)" .br .ti -1c .RI "\fB_IteratorPair\fP & \fBoperator=\fP (const \fB_IteratorPair\fP &__other)" .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\&. " .in -1c .SS "Public Attributes" .in +1c .ti -1c .RI "_Iterator1 \fBfirst\fP" .br .RI "The first member\&. " .ti -1c .RI "_Iterator2 \fBsecond\fP" .br .RI "The second member\&. " .in -1c .SS "Related Functions" (Note that these are not member functions\&.) .in +1c .ti -1c .RI "constexpr \fBpair\fP< typename __decay_and_strip< _Iterator1 >::__type, typename __decay_and_strip< _Iterator2 >::__type > \fBmake_pair\fP (_Iterator1 &&__x, _Iterator2 &&__y)" .br .RI "A convenience wrapper for creating a pair from two objects\&. " .in -1c .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 bool \fBoperator==\fP (const \fBpair\fP< _Iterator1, _Iterator2 > &__x, const \fBpair\fP< _Iterator1, _Iterator2 > &__y)" .br .ti -1c .RI "constexpr bool \fBoperator<\fP (const \fBpair\fP< _Iterator1, _Iterator2 > &__x, const \fBpair\fP< _Iterator1, _Iterator2 > &__y)" .br .ti -1c .RI "constexpr bool \fBoperator!=\fP (const \fBpair\fP< _Iterator1, _Iterator2 > &__x, const \fBpair\fP< _Iterator1, _Iterator2 > &__y)" .br .RI "Uses \fCoperator==\fP to find the result\&. " .ti -1c .RI "constexpr bool \fBoperator>\fP (const \fBpair\fP< _Iterator1, _Iterator2 > &__x, const \fBpair\fP< _Iterator1, _Iterator2 > &__y)" .br .RI "Uses \fCoperator<\fP to find the result\&. " .ti -1c .RI "constexpr bool \fBoperator<=\fP (const \fBpair\fP< _Iterator1, _Iterator2 > &__x, const \fBpair\fP< _Iterator1, _Iterator2 > &__y)" .br .RI "Uses \fCoperator<\fP to find the result\&. " .ti -1c .RI "constexpr bool \fBoperator>=\fP (const \fBpair\fP< _Iterator1, _Iterator2 > &__x, const \fBpair\fP< _Iterator1, _Iterator2 > &__y)" .br .RI "Uses \fCoperator<\fP to find the result\&. " .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\fC [inherited]\fP" .PP The type of the \fCfirst\fP member\&. .SS "typedef _Iterator2 \fBstd::pair\fP< _Iterator1 , _Iterator2 >::second_type\fC [inherited]\fP" .PP The type of the \fCsecond\fP member\&. .SH "Member Function Documentation" .PP .SS "constexpr void \fBstd::pair\fP< _Iterator1 , _Iterator2 >::swap (\fBpair\fP< _Iterator1, _Iterator2 > & __p)\fC [inline]\fP, \fC [constexpr]\fP, \fC [noexcept]\fP, \fC [inherited]\fP" .PP Swap the first members and then the second members\&. .SH "Friends And Related Function Documentation" .PP .SS "constexpr \fBpair\fP< typename __decay_and_strip< _Iterator1 >::__type, typename __decay_and_strip< _Iterator2 >::__type > make_pair (_Iterator1 && __x, _Iterator2 && __y)\fC [related]\fP" .PP A convenience wrapper for creating a pair from two objects\&. .PP \fBParameters\fP .RS 4 \fI__x\fP The first object\&. .br \fI__y\fP The second object\&. .RE .PP \fBReturns\fP .RS 4 A newly-constructed pair<> object of the appropriate type\&. .RE .PP 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)\&. .PP 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 \fCreference_wrapper\fP to this function\&. .SS "constexpr bool operator!= (const \fBpair\fP< _Iterator1 , _Iterator2 > & __x, const \fBpair\fP< _Iterator1 , _Iterator2 > & __y)\fC [related]\fP" .PP Uses \fCoperator==\fP to find the result\&. .SS "constexpr bool operator< (const \fBpair\fP< _Iterator1 , _Iterator2 > & __x, const \fBpair\fP< _Iterator1 , _Iterator2 > & __y)\fC [related]\fP" Defines a lexicographical order for pairs\&. .PP For two pairs of the same type, \fCP\fP is ordered before \fCQ\fP if \fCP\&.first\fP is less than \fCQ\&.first\fP, or if \fCP\&.first\fP and \fCQ\&.first\fP are equivalent (neither is less than the other) and \fCP\&.second\fP is less than \fCQ\&.second\fP\&. .SS "constexpr bool operator<= (const \fBpair\fP< _Iterator1 , _Iterator2 > & __x, const \fBpair\fP< _Iterator1 , _Iterator2 > & __y)\fC [related]\fP" .PP Uses \fCoperator<\fP to find the result\&. .SS "constexpr bool operator== (const \fBpair\fP< _Iterator1 , _Iterator2 > & __x, const \fBpair\fP< _Iterator1 , _Iterator2 > & __y)\fC [related]\fP" Two pairs of the same type are equal iff their members are equal\&. .SS "constexpr bool operator> (const \fBpair\fP< _Iterator1 , _Iterator2 > & __x, const \fBpair\fP< _Iterator1 , _Iterator2 > & __y)\fC [related]\fP" .PP Uses \fCoperator<\fP to find the result\&. .SS "constexpr bool operator>= (const \fBpair\fP< _Iterator1 , _Iterator2 > & __x, const \fBpair\fP< _Iterator1 , _Iterator2 > & __y)\fC [related]\fP" .PP Uses \fCoperator<\fP to find the result\&. .SS "constexpr enable_if< __and_< __is_swappable< _Iterator1 >, __is_swappable< _Iterator2 > >::value >::type swap (\fBpair\fP< _Iterator1 , _Iterator2 > & __x, \fBpair\fP< _Iterator1 , _Iterator2 > & __y)\fC [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\fC [inherited]\fP" .PP The first member\&. .SS "_Iterator2 \fBstd::pair\fP< _Iterator1 , _Iterator2 >::second\fC [inherited]\fP" .PP The second member\&. .SH "Author" .PP Generated automatically by Doxygen for libstdc++ from the source code\&.