Namespaces
Variants
Actions

Standard library header <bitset>

From cppreference.com
< cpp‎ | header
 
 
Standard library headers
 

This header is part of the general utility library.

Contents

Includes

std::basic_string class template[edit]
Forward declarations of all classes in the input/output library[edit]

Classes

implements constant length bit array
(class template)[edit]
hash support for std::bitset
(class template specialization)[edit]
Forward declarations
Defined in header <functional>
(C++11)
hash function object
(class template)[edit]

Functions

performs binary logic operations on bitsets
(function template)[edit]
performs stream input and output of bitsets
(function template)[edit]

[edit]Synopsis

#include <string>#include <iosfwd> // for istream, ostream   namespace std {template<size_t N>class bitset;   // bitset operatorstemplate<size_t N>constexpr bitset<N> operator&(const bitset<N>&, const bitset<N>&)noexcept;template<size_t N>constexpr bitset<N> operator|(const bitset<N>&, const bitset<N>&)noexcept;template<size_t N>constexpr bitset<N> operator^(const bitset<N>&, const bitset<N>&)noexcept;template<class CharT, class Traits, size_t N> basic_istream<CharT, Traits>& operator>>(basic_istream<CharT, Traits>& is, bitset<N>& x);template<class CharT, class Traits, size_t N> basic_ostream<CharT, Traits>& operator<<(basic_ostream<CharT, Traits>& os, const bitset<N>& x);}

[edit]Class template std::bitset

namespace std {template<size_t N>class bitset {public:// bit referenceclass reference {public:constexpr reference(const reference&)=default;constexpr ~reference();constexpr reference& operator=(bool x)noexcept;// for b[i] = x;constexpr reference& operator=(const reference&)noexcept;// for b[i] = b[j];constexprbool operator~()constnoexcept;// flips the bitconstexpr operator bool()constnoexcept;// for x = b[i];constexpr reference& flip()noexcept;// for b[i].flip();};   // constructorsconstexpr bitset()noexcept;constexpr bitset(unsignedlonglong val)noexcept;template<class CharT, class Traits, class Allocator>constexprexplicit bitset(const basic_string<CharT, Traits, Allocator>& str, typename basic_string<CharT, Traits, Allocator>::size_type pos =0, typename basic_string<CharT, Traits, Allocator>::size_type n = basic_string<CharT, Traits, Allocator>::npos, CharT zero = CharT('0'), CharT one = CharT('1'));template<class CharT, class Traits>constexprexplicit bitset( basic_string_view<CharT, Traits> str, typename basic_string_view<CharT, Traits>::size_type pos =0, typename basic_string_view<CharT, Traits>::size_type n = basic_string_view<CharT, Traits>::npos, CharT zero = CharT('0'), CharT one = CharT('1'));template<class CharT>constexprexplicit bitset(const CharT* str, typename basic_string_view<CharT>::size_type n = basic_string_view<CharT>::npos, CharT zero = CharT('0'), CharT one = CharT('1'));   // bitset operationsconstexpr bitset& operator&=(const bitset& rhs)noexcept;constexpr bitset& operator|=(const bitset& rhs)noexcept;constexpr bitset& operator^=(const bitset& rhs)noexcept;constexpr bitset& operator<<=(size_t pos)noexcept;constexpr bitset& operator>>=(size_t pos)noexcept;constexpr bitset operator<<(size_t pos)constnoexcept;constexpr bitset operator>>(size_t pos)constnoexcept;constexpr bitset& set()noexcept;constexpr bitset& set(size_t pos, bool val =true);constexpr bitset& reset()noexcept;constexpr bitset& reset(size_t pos);constexpr bitset operator~()constnoexcept;constexpr bitset& flip()noexcept;constexpr bitset& flip(size_t pos);   // element accessconstexprbool operator[](size_t pos)const;constexpr reference operator[](size_t pos);   constexprunsignedlong to_ulong()const;constexprunsignedlonglong to_ullong()const;template<class CharT =char, class Traits = char_traits<CharT>, class Allocator = allocator<CharT>>constexpr basic_string<CharT, Traits, Allocator> to_string(CharT zero = CharT('0'), CharT one = CharT('1'))const;   // observersconstexpr size_t count()constnoexcept;constexpr size_t size()constnoexcept;constexprbool operator==(const bitset& rhs)constnoexcept;constexprbool test(size_t pos)const;constexprbool all()constnoexcept;constexprbool any()constnoexcept;constexprbool none()constnoexcept;};   // hash supporttemplate<class T>struct hash;template<size_t N>struct hash<bitset<N>>;}

[edit]Defect reports

The following behavior-changing defect reports were applied retroactively to previously published C++ standards.

DR Applied to Behavior as published Correct behavior
LWG 4140C++98 the synopsis contains a declaration of the default
constructor of std::bitset<N>::reference
removed the
declaration
close