libstdc++: std::basic_istream< _CharT, _Traits >::sentry Class Reference

libstdc++

std::basic_istream< _CharT, _Traits >::sentry Class Reference

`#include <istream>`

## Public Types
typedef __istream_type::__ctype_type | __ctype_type
typedef _Traits::int_type | __int_type
typedef basic_istream< _CharT, _Traits > | __istream_type
typedef basic_streambuf< _CharT, _Traits > | __streambuf_type
typedef _Traits | traits_type

## Public Member Functions
| sentry (basic_istream< _CharT, _Traits > &__is, bool __noskipws=false)
| operator bool () const

## Detailed Description

template<typename _CharT, typename _Traits>
class std::basic_istream< _CharT, _Traits >::sentry

Performs setup work for input streams.

Objects of this class are created before all of the standard extractors are run. It is responsible for exception-safe prefix and suffix operations, although only prefix actions are currently required by the standard.

Definition at line 792 of file istream.

## Member Typedef Documentation

## ◆ __ctype_type

template<typename _CharT, typename _Traits>

typedef __istream_type::__ctype_type std::basic_istream< _CharT, _Traits >::sentry::__ctype_type

Definition at line 802 of file istream.

## ◆ __int_type

template<typename _CharT, typename _Traits>

typedef _Traits::int_type std::basic_istream< _CharT, _Traits >::sentry::__int_type

Definition at line 803 of file istream.

## ◆ __istream_type

template<typename _CharT, typename _Traits>

typedef basic_istream<_CharT, _Traits> std::basic_istream< _CharT, _Traits >::sentry::__istream_type

Definition at line 801 of file istream.

## ◆ __streambuf_type

template<typename _CharT, typename _Traits>

typedef basic_streambuf<_CharT, _Traits> std::basic_istream< _CharT, _Traits >::sentry::__streambuf_type

Definition at line 800 of file istream.

## ◆ traits_type

template<typename _CharT, typename _Traits>

typedef _Traits std::basic_istream< _CharT, _Traits >::sentry::traits_type

Easy access to dependent types.

Definition at line 799 of file istream.

## Constructor & Destructor Documentation

## ◆ sentry()

template<typename _CharT, typename _Traits>

std::basic_istream< _CharT, _Traits >::sentry::sentry | ( | basic_istream< _CharT, _Traits > & | __is,
|  | bool | __noskipws = false )
| explicit

The constructor performs all the work.

Parameters

  __is | The input stream to guard.
  __noskipws | Whether to consume whitespace or not.

If the stream state is good (__is.good() is true), then the following actions are performed, otherwise the sentry state is false (not okay) and failbit is set in the stream state.

The sentry's preparatory actions are:

1. if the stream is tied to an output stream, `is.tie()->flush()` is called to synchronize the output sequence
2. if __noskipws is false, and `ios_base::skipws` is set in `is.flags()`, the sentry extracts and discards whitespace characters from the stream. The currently imbued locale is used to determine whether each character is whitespace.

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

Definition at line 51 of file istream.tcc.

References std::basic_istream< _CharT, _Traits >::basic_istream(), std::ios_base::badbit, std::basic_ios< _CharT, _Traits >::good(), and std::ios_base::goodbit.

## Member Function Documentation

## ◆ operator bool()

template<typename _CharT, typename _Traits>

std::basic_istream< _CharT, _Traits >::sentry::operator bool | ( |  | ) | const
| inlineexplicit

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).

Definition at line 840 of file istream.

The documentation for this class was generated from the following files:

- istream
- istream.tcc