Книга: Standard Template Library Programmer
input_iterator
Разделы на этой странице:
input_iterator<T, Distance>
Category: iterators
Component type: type
Description
Input_iterator is an iterator base class: it is intended that an iterator that is a model of Input Iterator, and whose value type and distance type are T and Distance, may be defined by inheriting from input_iterator<T, Distance> [1]. Input_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_input_iterator : public input_iterator<double> {
…
};
This declares my_input_iterator to be an Input Iterator whose value type is double and whose distance type is ptrdiff_t. If Iter is an object of class my_input_iterator, then iterator_category(Iter) will return input_iterator_tag(), value_type(Iter) will return (double*)0 , and distance_type(Iter) will return (ptrdiff_t*)0.
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
Parameter | Description | Default |
---|---|---|
T |
The iterator's value type | |
Distance |
The iterator's distance type | ptrdiff_t |
Model of
Assignable
Public base classes
None
Type requirements
The distance type must be a signed integral type.
Public base classes
None.
Members
None.
New Members
None.
Notes
[1] It is not required that an Input Iterator inherit from the base input_iterator. It is, however, required that the functions iterator_category, distance_type, and value_type be defined for every Input Iterator. (Or, if you are using the iterator_traits mechanism, that iterator_traits is properly specialized for every Input Iterator.) Since those functions are defined for the base input_iterator, the easiest way to ensure that are defined for a new iterator class is to derive that class from input_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, output_iterator, forward_iterator, bidirectional_iterator, random_access_iterator
- iterator_traits
- bidirectional_iterator_tag
- Input Iterator
- input_iterator_tag
- INPUT chain
- Searches for a String in Input with grep
- 3.2 PIC Microcontroller Input-Output Port Programming
- 1.3.5 Reset Input
- 1.3.9 Serial Input-Output
- PROJECT 8.2 — USB-Based Microcontroller Input
- Iterators
- 15.7.3 Multiple Input Communication Channels