---
name: "__gnu_parallel::_GuardedIterator"
section: "3"
platform: "linux"
package: "gcc"
version: "16.2.1+r23+gd564253eb6c8-1"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/__gnu_parallel::_GuardedIterator"
---

# \_\_gnu\_parallel::\_GuardedIterator(3)

\_Iterator wrapper supporting an implicit supremum at the end of the sequence, dominating all comparisons.

## NAME

\_\_gnu\_parallel::\_GuardedIterator\< \_RAIter, \_Compare \> - \_Iterator wrapper supporting an implicit supremum at the end of the sequence, dominating all comparisons.

## SYNOPSIS

\#include \<multiway\_merge.h\>

### Public Member Functions

**\_GuardedIterator** (\_RAIter \_\_begin, \_RAIter \_\_end, \_Compare &\_\_comp)\
 Constructor. Sets iterator to beginning of sequence.  **operator \_RAIter** () const\
 Convert to wrapped iterator.  **std::iterator\_traits**\< \_RAIter \>::value\_type & **operator\*** () const\
 Dereference operator.  **\_GuardedIterator**\< \_RAIter, \_Compare \> & **operator++** ()\
 Pre-increment operator.

### Friends

bool **operator\<** (const **\_GuardedIterator**\< \_RAIter, \_Compare \> &\_\_bi1, const **\_GuardedIterator**\< \_RAIter, \_Compare \> &\_\_bi2)\
 Compare two elements referenced by guarded iterators.  bool **operator\<=** (const **\_GuardedIterator**\< \_RAIter, \_Compare \> &\_\_bi1, const **\_GuardedIterator**\< \_RAIter, \_Compare \> &\_\_bi2)\
 Compare two elements referenced by guarded iterators.

## Detailed Description

### template\<typename \_RAIter, typename \_Compare\>

class \_\_gnu\_parallel::\_GuardedIterator\< \_RAIter, \_Compare \>"\_Iterator wrapper supporting an implicit supremum at the end of the sequence, dominating all comparisons.

The implicit supremum comes with a performance cost.

Deriving from \_RAIter is not possible since \_RAIter need not be a class.

## Constructor & Destructor Documentation

### template\<typename \_RAIter, typename \_Compare\> \_\_gnu\_parallel::\_GuardedIterator\< \_RAIter, \_Compare \>::\_GuardedIterator (\_RAIter \_\_begin, \_RAIter \_\_end, \_Compare & \_\_comp) \[inline\]

Constructor. Sets iterator to beginning of sequence.

**Parameters**

*\_\_begin* Begin iterator of sequence. \
 *\_\_end* End iterator of sequence. \
 *\_\_comp* Comparator provided for associated overloaded compare operators.

Referenced by **operator\<**, and **operator\<=**.

## Member Function Documentation

### template\<typename \_RAIter, typename \_Compare\> \_\_gnu\_parallel::\_GuardedIterator\< \_RAIter, \_Compare \>::operator \_RAIter () const \[inline\]

Convert to wrapped iterator.

**Returns**

Wrapped iterator.

### template\<typename \_RAIter, typename \_Compare\> std::iterator\_traits\< \_RAIter \>::value\_type & \_\_gnu\_parallel::\_GuardedIterator\< \_RAIter, \_Compare \>::operator\* () const \[inline\]

Dereference operator.

**Returns**

Referenced element.

### template\<typename \_RAIter, typename \_Compare\> \_GuardedIterator\< \_RAIter, \_Compare \> & \_\_gnu\_parallel::\_GuardedIterator\< \_RAIter, \_Compare \>::operator++ () \[inline\]

Pre-increment operator.

**Returns**

This.

## Friends And Related Symbol Documentation

### template\<typename \_RAIter, typename \_Compare\> bool operator\< (const \_GuardedIterator\< \_RAIter, \_Compare \> & \_\_bi1, const \_GuardedIterator\< \_RAIter, \_Compare \> & \_\_bi2) \[friend\]

Compare two elements referenced by guarded iterators.

**Parameters**

*\_\_bi1* First iterator. \
 *\_\_bi2* Second iterator.

**Returns**

true if less.

References **\_GuardedIterator()**.

### template\<typename \_RAIter, typename \_Compare\> bool operator\<= (const \_GuardedIterator\< \_RAIter, \_Compare \> & \_\_bi1, const \_GuardedIterator\< \_RAIter, \_Compare \> & \_\_bi2) \[friend\]

Compare two elements referenced by guarded iterators.

**Parameters**

*\_\_bi1* First iterator. \
 *\_\_bi2* Second iterator.

**Returns**

True if less equal.

References **\_GuardedIterator()**.

## Author

Generated automatically by Doxygen for libstdc++ from the source code.
