The default constructor (1) constructs a basic_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 x.
By providing only protected constructors, the class cannot be instantiated into objects directly; Derived classes can call these constructors to initialize their basic_streambuf components.
A basic_streambuf object of the same type (with the same class template parameters charT and traits), whose value is copied.
Strong guarantee: if an exception is thrown, there are no side effects.