Category: iterators | Component type: type |
An otl_output_iterator is an Output Iterator that performs output of objects of type T to a particular otl_stream. Note that all of the restrictions of an Output Iterator must be obeyed, including the restrictions on the ordering of operator* and operator++ operations.
Defined in otl_iter.h.
Parameter | Description | Default |
---|---|---|
T | The type of object that will be written to the otl_stream. The set of value types of an otl_output_iterator consists of a single type, T. |
Member | Where defined | Description |
---|---|---|
otl_output_iterator(otl_stream&) | otl_output_iterator | See below. |
otl_output_iterator(const otl_output_iterator&) | Output Iterator | The copy constructor |
otl_output_iterator& operator=(const otl_output_iterator&) | Output Iterator | The assignment operator |
otl_output_iterator& operator=(const T&) | Output Iterator | Used to implement the Output Iterator requirement *i = t. [1] |
otl_output_iterator& operator*() | Output Iterator | Used to implement the Output Iterator requirement *i = t. [1] |
otl_output_iterator& operator++() | Output Iterator | Preincrement |
otl_output_iterator& operator++(int) | Output Iterator | Postincrement |
output_iterator_tag iterator_category(const otl_output_iterator&) | iterator tags | Returns the iterator's category. |
Function | Description |
---|---|
otl_output_iterator(otl_stream& s) | Creates an otl_output_iterator such that assignment of t through it is equivalent to s << t. |
[1] Note how assignment through an otl_output_iterator is implemented. In general, unary operator* must be defined so that it returns a proxy object, where the proxy object defines operator= to perform the output operation. In this case, for the sake of simplicity, the proxy object is the otl_output_iterator itself. That is, *i simply returns i, and *i = t is equivalent to i = t. You should not, however, rely on this behavior. It is an implementation detail, and it is not guaranteed to remain the same in future versions.