[iostreams.limits.pos] # 31 Input/output library [[input.output]](./#input.output) ## 31.2 Iostreams requirements [[iostreams.requirements]](iostreams.requirements#iostreams.limits.pos) ### 31.2.3 Positioning type limitations [iostreams.limits.pos] [1](#1) [#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/iostreams.tex#L97) The classes of [[input.output]](input.output "31 Input/output library") with template argumentscharT andtraits behave as described iftraits​::​pos_type andtraits​::​off_type arestreampos andstreamoff respectively[.](#1.sentence-1) Except as noted explicitly below, their behavior whentraits​::​pos_type andtraits​::​off_type are other types isimplementation-defined[.](#1.sentence-2) [2](#2) [#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/iostreams.tex#L119) [*Note [1](#note-1)*: For each of the specializations of char_traits defined in[[char.traits.specializations]](char.traits.specializations "27.2.4 char_­traits specializations"),state_type denotes mbstate_t,pos_type denotes fpos, and off_type denotes streamoff[.](#2.sentence-1) — *end note*] [3](#3) [#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/iostreams.tex#L128) In the classes of [[input.output]](input.output "31 Input/output library"), a template parameter with namecharT represents a member of the set of types containing char, wchar_t, and any other implementation-defined character container types ([[defns.character.container]](defns.character.container "3.10 character container type")) that meet the requirements for a character on which any of the iostream components can be instantiated[.](#3.sentence-1)