Разрешены операции, указанные в таблице 112 . В этой таблице
P относится к экземпляру fpos,
p и q обращайтесь к значениям типа P,
O относится к типу streamoff,
o относится к значению типа streamoff,
sz относится к значению типа streamsize и
i относится к значению типа int.
Выражение | Тип возврата | Оперативный | Утверждение / примечание |
семантика | до / после состояния | ||
P(i) |
p == P(i) примечание: предполагается деструктор. | ||
P p(i); P p = i; | Postconditions: p == P(i). | ||
P(o) | fpos | конвертирует из offset | |
O(p) | streamoff | конвертируется в offset | P(O(p)) == p |
p == q | конвертируемый в bool | == является отношением эквивалентности | |
p != q | конвертируемый в bool | !(p == q) | |
q = p + o p += o | fpos | + компенсировать | q - o == p |
q = p - o p -= o | fpos | - компенсировать | q + o == p |
o = p - q | streamoff | расстояние | q + o == p |
streamsize(o) O(sz) |
streamsize streamoff |
обращает новообращенных |
streamsize(O(sz)) == sz streamsize(O(sz)) == sz |
[ Note: Каждая реализация должна предоставлять перегруженные операторы для fpos объектов, чтобы удовлетворить требованиям [fpos.operations]. Не указано, являются ли эти операторы членами fposглобальных операторов или предоставлены каким-либо другим образом. ] — end note
Операции потока, возвращающие значение типа, traits::pos_type возвращаются P(O(-1)) как недопустимое значение, чтобы сигнализировать об ошибке. Если это значение используется в качестве аргумента в любой istream, ostreamили streambuf члена , который принимает значение типа ,traits::pos_type то поведение этой функции не определено.