The default constructor (1) constructs a streambuf object, initializing its internal pointers to null pointer values and the internal locale object to a copy of the global locale (as if constructed by calling locale()).
The copy constructor (2) (C++11), copies the values of the internal pointers and the locale object of rhs.
By providing only protected constructors, the class cannot be instantiated into objects directly; Derived classes can call these constructors to initialize their streambuf components.