---
name: "std::basic_ostream_sentry"
section: "3cxx"
platform: "linux"
package: "libstdc++-12-doc"
version: "12.4.0-5"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/std::basic_ostream_sentry/3cxx"
---

# std::basic\_ostream\_sentry(3cxx)

Performs setup work for output streams.

## NAME

std::basic\_ostream\< \_CharT, \_Traits \>::sentry - Performs setup work for output streams.

## SYNOPSIS

`#include <ostream>`

### Public Member Functions

**sentry** (**basic\_ostream**\< \_CharT, \_Traits \> &**\_\_os**)\
 The constructor performs preparatory work.  **~sentry** ()\
 Possibly flushes the stream.  **operator bool** () const\
 Quick status checking.

## Detailed Description

### template\<typename \_CharT, typename \_Traits\>

class std::basic\_ostream\< \_CharT, \_Traits \>::sentry"Performs setup work for output streams.

Objects of this class are created before all of the standard inserters are run. It is responsible for *exception-safe prefix and suffix operations*.

## Constructor & Destructor Documentation

### template\<typename \_CharT , typename \_Traits \> std::basic\_ostream\< \_CharT, \_Traits \>::sentry::sentry (basic\_ostream\< \_CharT, \_Traits \> & \_\_os)` [explicit]`

The constructor performs preparatory work.

**Parameters**

*\_\_os* The output stream to guard.

If the stream state is good (*\_\_os.good()* is true), then if the stream is tied to another output stream, `is.tie()->flush()` is called to synchronize the output sequences.

If the stream state is still good, then the sentry state becomes true (*okay*).

References **std::ios\_base::failbit**.

### template\<typename \_CharT , typename \_Traits \> std::basic\_ostream\< \_CharT, \_Traits \>::sentry::~sentry ()` [inline]`

Possibly flushes the stream. If `ios_base::unitbuf` is set in `os.flags()`, and `std::uncaught_exception()` is true, the sentry destructor calls `flush()` on the output stream.

## Member Function Documentation

### template\<typename \_CharT , typename \_Traits \> std::basic\_ostream\< \_CharT, \_Traits \>::sentry::operator bool () const` [inline]`, ` [explicit]`

Quick status checking.

**Returns**

The sentry state.

For ease of use, sentries may be converted to booleans. The return value is that of the sentry state (true == okay).

## Author

Generated automatically by Doxygen for libstdc++ from the source code.
