std::bitset<N>::to_string
| (1) | ||
template< class CharT, class Traits, class Allocator > std::basic_string<CharT, Traits, Allocator> |
(C++11まで) | |
template< class CharT = char, |
(C++11以降) (C++23 以降 constexpr) |
|
template< class CharT, class Traits > std::basic_string<CharT, Traits> |
(2) | (C++11まで) |
| template< class CharT > std::basic_string<CharT> to_string( CharT zero = CharT('0'), |
(3) | (C++11まで) |
| std::string to_string( char zero = '0', char one = '1' ) const; |
(4) | (C++11まで) |
ビットセットの内容を文字列に変換します。値が false のビットには zero を、値が true のビットには one を使用します。
結果の文字列は N 文字で構成され、最初の文字は最後の (N-1 番目の) ビットに対応し、最後の文字は最初のビットに対応します。
|
関数テンプレートはデフォルトのテンプレート引数を持つことができないため、すべてのテンプレート型引数を提供する必要があります。(2-4) のオーバーロードは、 2) デフォルトのアロケータ std::allocator を使用します。
|
(C++11まで) |
目次 |
[edit] パラメータ
| 0 | - | false を表すために使用する文字 |
| 1 | - | true を表すために使用する文字 |
[edit] 戻り値
[edit] 例外
std::bad_alloc を std::basic_string のコンストラクタからスローする可能性があります。
[edit] 注記
C++11以降、関数テンプレートはデフォルトのテンプレート引数を持つことができます。LWG issue 1113 により、ヘルパーオーバーロード (2-4) が削除され、(1) に対応するデフォルトのテンプレート引数が追加されました。
[edit] 例
#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'; }
出力
00101010 **1*1*1* OOXOXOXO
[edit] 不具合報告
以下の動作変更を伴う欠陥報告が、以前に公開されたC++標準に遡って適用されました。
| DR | 適用対象 | 公開された動作 | 正しい動作 |
|---|---|---|---|
| LWG 396 | C++98 | ゼロとイチのビットが文字 0 および 1 (これらは '0' および '1' に対応しません) |
に変換されていました。 これらの文字の値を指定するためのパラメータが追加されました。 |
| LWG 434 | C++98 | すべてのテンプレート引数を提供する必要がありました。 | オーバーロード (2-4) が追加されました。 |
| LWG 853 | C++98 | オーバーロード (2-4) には、LWG issue 396 で追加されたデフォルト引数がありませんでした。 さらに追加されました。 |
(注:原文では、この項目が完結していないように見えます。したがって、機械翻訳も未完のままです。) |
[edit] 関連項目
| データの unsigned long 整数表現を返す (public member function) | |
| (C++11) |
データの unsigned long long 整数表現を返す (public member function) |