# output_iterator

Category: iterators | Component type: type

### Description

`Output_iterator` is an iterator base class: it is intended that an iterator that is a model of Output Iterator may be defined by inheriting from `output_iterator` [1]. `Output_iterator` is entirely empty: it has no member functions, member variables, or nested types. It exists solely to simplify the definition of the functions `iterator_category`, `distance_type`, and `value_type`.

### Example

    class my_output_iterator : public output_iterator
    {
      ...
    };

This declares `my_output_iterator` to be an Output Iterator. If `Iter` is an object of class `my_output_iterator`, then `iterator_category(Iter)` will return `output_iterator_tag()`, and `distance_type` and `value_type` will be undefined for objects of class `my_output_iterator`.

### Definition

Defined in the standard header iterator, and in the nonstandard backward-compatibility header iterator.h. This class is no longer part of the C++ standard, although it was present in early drafts of the standard. It is retained in this implementation for backward compatibility.

### Template parameters

None. (Note that Output Iterators need have neither distance types nor value types.)

### Model of

Assignable

### Public base classes

None

### Type requirements

None.

### Public base classes

None.

### Members

None.

### New Members

None.

### Notes

[1] It is not required that an Output Iterator inherit from the base `output_iterator`. It is, however, required that the function `iterator_category` be defined for every Output Iterator. (Or, if you are using the `iterator_traits` mechanism, that `iterator_traits` is properly specialized for every Output Iterator.) Since it is defined for the base `output_iterator`, the easiest way to ensure that it defined for a new type is to derive that class from `output_iterator` and rely on the derived-to-base standard conversion of function arguments.

### See also

The Iterator Tags overview, `iterator_traits`, `iterator_category`, `value_type`, `distance_type`, `input_iterator`, `forward_iterator`, `bidirectional_iterator`, `random_access_iterator`

Copyright © 1999 Silicon Graphics, Inc. All Rights Reserved. TrademarkInformation