I picked "no" and said:
Input iterator: * The operation returns a constant reference. Constant operations. In short, values cannot be attached, they cannot be modified, and values cannot be attached. They can be copied and compared.
Output iterator: * The operation is a non-constant operation and returns a reference. In short, * the operation changes the state. value that can be modified. it cannot be compared and copied (because it cannot be used to obtain data without modification, similar to auto_ptr ). Interestingly, difference_type is forcibly disabled because it cannot be compared (the values have changed once compared ).
Therefore, forward_iterator and output _ terator are not related to "Isa.
STD: iostream and its sub-classes are the product of the chaotic logic of the standard committee and the use of multi-inheritance. A typical example is STD ::
Fstream is rarely used. rapidxml and minini use the File * operation very honestly.