[streambuf.cons]

# 31 Input/output library [[input.output]](./#input.output)

## 31.6 Stream buffers [[stream.buffers]](stream.buffers#streambuf.cons)

### 31.6.3 Class template basic_streambuf [[streambuf]](streambuf#cons)

#### 31.6.3.2 Constructors [streambuf.cons]

[ð](#lib:basic_streambuf,constructor)

`basic_streambuf();
`

[1](#1)

[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/iostreams.tex#L3112)

*Effects*: Initializes:[266](#footnote-266 "The default constructor is protected for class basic_­streambuf to assure that only objects for classes derived from this class can be constructed.")

- [(1.1)](#1.1)

all pointer member objects to null pointers,

- [(1.2)](#1.2)

thegetloc() member to a copy of the global locale,locale(),
at the time of construction[.](#1.sentence-1)

[2](#2)

[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/iostreams.tex#L3132)

*Remarks*: Once thegetloc() member is initialized, results of calling locale member functions,
and of members of facets so obtained, can safely be cached until the
next time the memberimbue is called[.](#2.sentence-1)

[ð](#lib:basic_streambuf,constructor_)

`basic_streambuf(const basic_streambuf& rhs);
`

[3](#3)

[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/iostreams.tex#L3149)

*Postconditions*: 

- [(3.1)](#3.1)

eback() == rhs.eback()

- [(3.2)](#3.2)

gptr() == rhs.gptr()

- [(3.3)](#3.3)

egptr() == rhs.egptr()

- [(3.4)](#3.4)

pbase() == rhs.pbase()

- [(3.5)](#3.5)

pptr() == rhs.pptr()

- [(3.6)](#3.6)

epptr() == rhs.epptr()

- [(3.7)](#3.7)

getloc() == rhs.getloc()

[ð](#lib:basic_streambuf,destructor)

`~basic_streambuf();
`

[4](#4)

[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/iostreams.tex#L3168)

*Effects*: None[.](#4.sentence-1)

[266)](#footnote-266)[266)](#footnoteref-266)

The default constructor is protected for classbasic_streambuf to assure that only objects for classes
derived from this class can be constructed[.](#footnote-266.sentence-1)
