Annex D (normative) Compatibility features [depr]

D.6 char* streams [depr.str.strstreams]

D.6.4 Class strstream [depr.strstream]

namespace std {
  class strstream
    : public basic_iostream<char> {
  public:
    // Types
    using char_type = char;
    using int_type  = char_traits<char>::int_type;
    using pos_type  = char_traits<char>::pos_type;
    using off_type  = char_traits<char>::off_type;

    // constructors/destructor
    strstream();
    strstream(char* s, int n,
              ios_base::openmode mode = ios_base::in|ios_base::out);
    virtual ~strstream();

    // Members:
    strstreambuf* rdbuf() const;
    void freeze(bool freezefl = true);
    int pcount() const;
    char* str();

  private:
  strstreambuf sb;  // exposition only
  };
}

Класс strstream поддерживает чтение и запись из объектов класса strstreambuf. Он предоставляет strstreambuf объект для управления связанным объектом массива. Для демонстрации поддерживаемые данные представлены здесь как:

  • sb, strstreambuf объект.

D.6.4.1 strstream constructors [depr.strstream.cons]

strstream();

Effects: Создает объект класса strstream, инициализируя базовый класс с помощью iostream(&sb).

strstream(char* s, int n, ios_base::openmode mode = ios_base::in|ios_base::out);

Effects: Создает объект класса strstream, инициализируя базовый класс iostream(&sb) и инициализируя sb одним из двух конструкторов:

  • Если (mode & app) == 0, то s обозначает первый элемент массива n элементов. Конструктор есть strstreambuf(s,n,s).

  • Если (mode & app) != 0, то s должен обозначить первый элемент массива n элементов, который содержит ntbs , первый элемент которого обозначен s. Конструктор есть strstreambuf(s,n,s + std​::​strlen(s)).

D.6.4.2 strstream destructor [depr.strstream.dest]

virtual ~strstream();

Effects: Уничтожает объект класса strstream.

D.6.4.3 strstream operations [depr.strstream.oper]

strstreambuf* rdbuf() const;

Returns: &sb.

void freeze(bool freezefl = true);

Effects: Звонки rdbuf()->freeze(freezefl).

char* str();

Returns: rdbuf()->str().

int pcount() const;

Returns: rdbuf()->pcount().