std::bitset<N>::to_string
template< class CharT, class Traits, class Allocator >
std::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 = std::char_traits<CharT>,
class Allocator = std::allocator<CharT>
>
std::basic_string<CharT, Traits, Allocator>
to_string( CharT zero = CharT('0'),
CharT one = CharT('1') ) const;
|
(начиная с C++11) (constexpr начиная с C++23) |
|
template< class CharT, class Traits >
std::basic_string<CharT, Traits>
to_string( CharT zero = CharT('0'),
CharT one = CharT('1') ) const;
|
(2) | (до C++11) |
template< class CharT >
std::basic_string<CharT> to_string( CharT zero = CharT('0'),
CharT one = CharT('1') ) const;
|
(3) | (до C++11) |
std::string to_string( char zero = '0', char one = '1' ) const;
|
(4) | (до C++11) |
Преобразует содержимое набора битов в строку. Использует zero для представления битов со значением false и one для представления битов со значением true.
Результирующая строка содержит N символов, причём первый символ соответствует последнему (N-1му) биту, а последний символ — первому биту.
|
Все аргументы шаблонного типа должны быть указаны, поскольку шаблоны функций не могут иметь аргументов шаблона по умолчанию. Перегрузки (2-4) предоставлены для упрощения вызовов 2) Использует распределитель по умолчанию std::allocator.
3) Использует характеристику символов по умолчанию std::char_traits и распределитель по умолчанию std::allocator.
4) Использует тип символа по умолчанию
char, характеристику символов по умолчанию std::char_traits и распределитель по умолчанию std::allocator. |
(до C++11) |
Параметры
| ноль | - | символ для представления false |
| один | - | символ для представления true |
Возвращаемое значение
Исключения
Может выбрасывать std::bad_alloc из конструктора std::basic_string .
Примечания
Начиная с C++11, шаблоны функций могут иметь аргументы по умолчанию для шаблонов. LWG issue 1113 удалил вспомогательные перегрузки ( 2-4 ) и добавил соответствующие аргументы по умолчанию для шаблонов в ( 1 ) .
Пример
#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
Отчеты о дефектах
Следующие отчеты об изменениях поведения, влияющие на дефекты, были применены ретроактивно к ранее опубликованным стандартам C++.
| DR | Applied to | Behavior as published | Correct behavior |
|---|---|---|---|
| LWG 396 | C++98 |
нули и единицы преобразовывались в символы
0
и 1 (которые не соответствуют '0' и '1' ) |
добавлены параметры для предоставления
значений этих символов |
| LWG 434 | C++98 | все шаблонные аргументы должны были предоставляться | добавлены перегрузки ( 2-4 ) |
| LWG 853 | C++98 |
перегрузки
(
2-4
)
не имели аргументов по умолчанию,
добавленных LWG issue 396 |
также добавлены |
Смотрите также
|
возвращает представление данных в виде целого числа типа
unsigned
long
(публичная функция-член) |
|
|
(C++11)
|
возвращает представление данных в виде целого числа типа
unsigned
long
long
(публичная функция-член) |