std::bitset<N>::to_string
std::basic_string <CharT, Traits, Allocator>
to_string( CharT zero = CharT('0'),
class CharT = char,
class Traits = std::char_traits <CharT>,
class Allocator = std::allocator <CharT>
>
std::basic_string <CharT, Traits, Allocator>
to_string( CharT zero = CharT('0'),
(constexpr since C++23)
std::basic_string <CharT, Traits>
to_string( CharT zero = CharT('0'),
std::basic_string <CharT> to_string( CharT zero = CharT('0'),
Converts the contents of the bitset to a string. Uses zero to represent bits with value of false and one to represent bits with value of true.
The resulting string contains N characters with the first character corresponds to the last (N-1th) bit and the last character corresponding to the first bit.
All template type arguments need to be provided because function templates cannot have default template arguments. Overloads (2-4) are provided to simplify the invocations of to_string
:
[edit] Parameters
[edit] Return value
[edit] Exceptions
May throw std::bad_alloc from the std::basic_string constructor.
[edit] Notes
Since C++11, functions templates can have default template arguments. LWG issue 1113 removed the helper overloads (2-4) and added the corresponding default template arguments in (1).
[edit] Example
#include <bitset> #include <iostream> int main() { std::bitset <8> b{42}; std::cout << b.to_string() << '\n' << b.to_string('*') << '\n' << b.to_string('O', 'X') << '\n'; }
Output:
00101010 **1*1*1* OOXOXOXO
[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 396 | C++98 | zero and one bits were converted to characters 0 and 1 (which do not correspond to '0' and '1') |
added parameters to provide values for these characters |
LWG 434 | C++98 | all template arguments needed to be provided | added overloads (2-4) |
LWG 853 | C++98 | overloads (2-4) did not have the default arguments added by LWG issue 396 |
also added |