RPNX::DataStructures
Header-only C++ data structures and supporting utilities.
Loading...
Searching...
No Matches
rpnx::dyn_output_iter< V > Class Template Reference

Owning type-erased output iterator. More...

#include <dyn_iterator.hpp>

Public Member Functions

 dyn_output_iter ()
 Constructs an empty output iterator.
 
template<typename It>
 dyn_output_iter (It it)
 Erases and owns an output iterator value.
 
 dyn_output_iter (dyn_output_iter< V > &&other)
 Moves the erased output iterator and leaves the source empty.
 
 dyn_output_iter (dyn_output_iter< V > const &other)
 Copies the erased output iterator.
 
template<typename It>
dyn_output_iteroperator= (It it)
 Replaces the target with a newly erased output iterator.
 
dyn_output_iteroperator= (dyn_output_iter< V > const &other)
 Copy-assigns the erased output iterator.
 
dyn_output_iteroperator= (dyn_output_iter< V > &&other)
 Move-assigns the erased output iterator and leaves the source empty.
 
dyn_output_iteroperator= (dyn_output_iter< V > &other)
 Copy-assigns from a mutable erased output iterator.
 
proxy operator* () const
 Returns a proxy for writing the current output position.
 
dyn_output_iteroperator++ ()
 Advances one output position.
 
dyn_output_iter operator++ (int)
 Advances and returns the previous position.
 

Detailed Description

template<typename V>
class rpnx::dyn_output_iter< V >

Owning type-erased output iterator.

Dereference returns a proxy whose assignment writes through the erased iterator. Empty and moved-from instances may only be destroyed or assigned.

Template Parameters
VValue type accepted by the output proxy.

Constructor & Destructor Documentation

◆ dyn_output_iter() [1/3]

template<typename V>
template<typename It>
rpnx::dyn_output_iter< V >::dyn_output_iter ( It it)
inline

Erases and owns an output iterator value.

Template Parameters
ItConcrete output-iterator type.
Parameters
itIterator to store.

◆ dyn_output_iter() [2/3]

template<typename V>
rpnx::dyn_output_iter< V >::dyn_output_iter ( dyn_output_iter< V > && other)
inline

Moves the erased output iterator and leaves the source empty.

Parameters
otherIterator to move.

◆ dyn_output_iter() [3/3]

template<typename V>
rpnx::dyn_output_iter< V >::dyn_output_iter ( dyn_output_iter< V > const & other)
inline

Copies the erased output iterator.

Parameters
otherIterator to copy.

Member Function Documentation

◆ operator*()

template<typename V>
proxy rpnx::dyn_output_iter< V >::operator* ( ) const
inline

Returns a proxy for writing the current output position.

Returns
Assignment proxy.
Precondition
The iterator is non-empty and writable.

◆ operator++() [1/2]

template<typename V>
dyn_output_iter & rpnx::dyn_output_iter< V >::operator++ ( )
inline

Advances one output position.

Returns
Reference to this iterator.

◆ operator++() [2/2]

template<typename V>
dyn_output_iter rpnx::dyn_output_iter< V >::operator++ ( int )
inline

Advances and returns the previous position.

Returns
Independent copy before advancement.

◆ operator=() [1/4]

template<typename V>
dyn_output_iter & rpnx::dyn_output_iter< V >::operator= ( dyn_output_iter< V > && other)
inline

Move-assigns the erased output iterator and leaves the source empty.

Parameters
otherIterator to move.
Returns
Reference to this iterator.

◆ operator=() [2/4]

template<typename V>
dyn_output_iter & rpnx::dyn_output_iter< V >::operator= ( dyn_output_iter< V > & other)
inline

Copy-assigns from a mutable erased output iterator.

Parameters
otherIterator to copy.
Returns
Reference to this iterator.

◆ operator=() [3/4]

template<typename V>
dyn_output_iter & rpnx::dyn_output_iter< V >::operator= ( dyn_output_iter< V > const & other)
inline

Copy-assigns the erased output iterator.

Parameters
otherIterator to copy.
Returns
Reference to this iterator.

◆ operator=() [4/4]

template<typename V>
template<typename It>
dyn_output_iter & rpnx::dyn_output_iter< V >::operator= ( It it)
inline

Replaces the target with a newly erased output iterator.

Template Parameters
ItConcrete output-iterator type.
Parameters
itIterator to store.
Returns
Reference to this iterator.

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