# std::basic_syncbuf<CharT,Traits,Allocator>::basic_syncbuf

From cppreference.com
< cpp‎ | io‎ | basic syncbuf

explicit basic_syncbuf( streambuf_type* obuf = nullptr ) : basic_syncbuf( obuf, Allocator() ) {} | (1) |
basic_syncbuf( streambuf_type* obuf, const Allocator& a); | (2) |
basic_syncbuf( basic_syncbuf&& rhs); | (3) |

1,2) 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.
3) 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 std::basic_streambuf of `rhs` are guaranteed to be null. Destroying a moved-from `rhs` will not produce any output.

### Parameters

obuf | - | pointer to the std::basic_streambuf to wrap
a | - | the allocator to use for temporary storage
rhs | - | another std::basic_syncbuf to move from

### Exceptions

1,2) May throw std::bad_alloc from the constructor of the internal temporary storage or std::system_error from the mutex construction.

### Notes

Typically called by the appropriate constructors of std::basic_osyncstream.

### Example

| This section is incomplete Reason: no example

### See also

sync [virtual] | synchronizes the buffers with the associated character sequence (virtual protected member function of `std::basic_streambuf<CharT,Traits>`)
emit | atomically transmits the entire internal buffer to the wrapped streambuf (public member function)

Retrieved from "https://en.cppreference.com/mwiki/index.php?title=cpp/io/basic_syncbuf/basic_syncbuf&oldid=105215"