boost::operator>>
Extracts a dynamic_bitset from an input stream.
Synopsis
Declared in <boost/dynamic_bitset/dynamic_bitset.hpp>
template<
typename CharT,
typename Traits,
typename Block,
typename AllocatorOrContainer>
std::basic_istream<CharT, Traits>&
operator>>(
std::basic_istream<CharT, Traits>& is,
dynamic_bitset<Block, AllocatorOrContainer>& b);
Definitions
‐ A (non‐eof) character c extracted from is is a bitset digit if and only if either Traits::eq(c, is.widen('0')) or Traits::eq(c, is.widen('1')) return true.
‐ If c is a bitset digit, its corresponding bit value is 0 if Tr::eq(c, is.widen('0')) returns true, 1 otherwise.
The extractor begins by constructing a sentry object k as if by typename std::basic_istream< Char, Traits >::sentry k( is ). If bool( k ) is true, it calls b.clear() then attempts to extract characters from is. For each character c that is a bitset digit, the corresponding bit value is appended to the less significant end of b (appending may throw). If is.width() is greater than zero and smaller than b.max_size() then the maximum number n of bits appended is is.width(); otherwise n = b.max_size(). Unless the extractor is exited via an exception, characters are extracted (and corresponding bits appended) until any of the following occurs:
‐ n bits are stored into the bitset; ‐ end‐of‐file, or an error, occurs on the input sequence; ‐ the next available input character isn't a bitset digit.
If no exception caused the function to exit then is.width( 0 ) is called, regardless of how many characters were actually extracted. The sentry object k is destroyed.
If the function extracts no characters, it calls is.setstate( std::ios::failbit ), which may throw std::ios_base::failure.
Parameters
| Name | Description |
|---|---|
is |
The left operand |
b |
The right operand |
Created with MrDocs