From cppreference.com
basic_syncbuf():basic_syncbuf(nullptr) (1) explicitbasic_syncbuf(streambuf_type*obuf):basic_syncbuf(obuf,Allocator()){} (2) basic_syncbuf(streambuf_type*obuf,constAllocator&a); (3) basic_syncbuf(basic_syncbuf&&rhs); (4) 1) Default constructor: creates an instance of std::basic_syncbuf with emit-on-sync policy set to false, wrapped streambuffer set to nullptr, and using default-constructed Allocator as the allocator for temporary storage.
2,3) Creates an instance of std::basic_syncbuf with emit-on-sync policy set to false, wrapped streambuffer set to obuf, and using a as the allocator for temporary storage.
4) Move constructor: move-constructs a std::basic_syncbuf object by moving all contents from another std::basic_syncbuf object rhs, including the temporary storage, the wrapped stream pointer, policy, and all other state (such as the mutex pointer). After move, rhs is not associated with a stream, and rhs.get_wrapped()==nullptr. The put area member pointers of the base class
of rhs are guaranteed to be null. Destroying a moved-from rhs will not produce any output.
Parameters
obuf - pointer to the
to wrap a - the allocator to use for temporary storage rhs - another std::basic_syncbuf to move from Exceptions
2,3) May throw
from the constructor of the internal temporary storage or
from the mutex construction.
Notes
Typically called by the appropriate constructors of std::basic_osyncstream.
Example
See also
[virtual]
synchronizes the buffers with the associated character sequence
(virtual protected member function of std::basic_streambuf<CharT,Traits>)
atomically transmits the entire internal buffer to the wrapped streambuf
(public member function)