30 Input/output library [input.output]

30.5 Iostreams base classes [iostreams.base]

30.5.4 Class template fpos [fpos]

namespace std {
  template <class stateT> class fpos {
  public:
    // [fpos.members], members
    stateT state() const;
    void state(stateT);
  private;
    stateT st; // exposition only
  };
}

30.5.4.1 fpos members [fpos.members]

void state(stateT s);

Effects: Назначает s в st.

stateT state() const;

Returns: Текущее значение st.

30.5.4.2 fpos requirements [fpos.operations]

Разрешены операции, указанные в таблице 112 . В этой таблице

  • P относится к экземпляру fpos,

  • p и q обращайтесь к значениям типа P,

  • O относится к типу streamoff,

  • o относится к значению типа streamoff,

  • sz относится к значению типа streamsize и

  • i относится к значению типа int.

Таблица 112 - Требования к типу позиции
ВыражениеТип возвратаОперативныйУтверждение / примечание
семантикадо / после состояния
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 то поведение этой функции не определено.