template <class CharT, class Traits, class Allocator>
basic_string<CharT, Traits, Allocator> to_string() const; // (1) C++03
template <class CharT = char,
class Traits = char_traits<CharT>,
class Allocator = allocator<CharT>>
basic_string<CharT, Traits, Allocator>
to_string(CharT zero = CharT('0'), CharT one = CharT('1')) const; // (1) C++11
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; // (1) C++23
概要
文字列に変換する。
戻り値
bitsetクラスのテンプレートパラメータNの長さのbasic_stringオブジェクトを構築する。- 各ビットを文字表現に変換する
- C++03 : ビット値0は文字
CharT(0)に、ビット値1は文字CharT(1)に変換。 - C++11 : ビット値0はパラメータ
zeroの文字に、ビット値1はパラメータoneに変換。
- C++03 : ビット値0は文字
- 各ビットの文字表現を、構築した
basic_stringオブジェクトに順番に設定して返す。
例
#include <iostream>
#include <bitset>
int main()
{
std::bitset<8> bs(131uL);
// C++03版の使用法
std::string s1 = bs.to_string<char, std::char_traits<char>, std::allocator<char>>();
std::cout << s1 << std::endl;
// C++11版の使用法
std::string s2 = bs.to_string();
std::cout << s2 << std::endl;
}
出力
10000011
10000011
備考
- Visual C++、GCC(libstdc++)には、C++03でも
bs.to_string()のように簡単に使用するための独自実装が追加で導入されていた。
参照
- LWG Issue 853.
to_stringneeds updating withzeroandone- C++11で、
0を表す文字と1を表す文字を指定できるようになった経緯のレポート
- C++11で、
- LWG Issue 1113.
bitset::to_stringcould be simplified- C++11で、デフォルトの文字型が設定された経緯のレポート
- P2417R2 A more constexpr bitset