std::numpunct<CharT>::thousands_sep, do_thousands_sep
Определено в заголовке <locale> | ||
|---|---|---|
public: char_type thousands_sep() const; | (1) | |
protected: virtual char_type do_thousands_sep() const; | (2) |
1) Общедоступный член-функция, вызывает член-функцию
do_thousands_sep самого производного класса.
2) Возвращает символ, используемый в качестве разделителя между группами цифр при разборе или форматировании целых чисел и целых частей чисел с плавающей запятой.
Значение возврата
Объект типа char_type для использования в качестве разделителя тысяч. Стандартные специализации std::numpunct возвращают ',' и L','.
Пример
#include <iostream>
#include <locale>
struct space_out : std::numpunct<char>
{
char do_thousands_sep() const { return ' '; } // separate with spaces
std::string do_grouping() const { return "\1"; } // groups of 1 digit
};
int main()
{
std::cout << "default locale: " << 12345678 << '\n';
std::cout.imbue(std::locale(std::cout.getloc(), new space_out));
std::cout << "locale with modified numpunct: " << 12345678 << '\n';
}Вывод:
default locale: 12345678 locale with modified numpunct: 1 2 3 4 5 6 7 8
Отчеты об ошибках
Следующие отчеты об ошибках, изменяющие поведение, были применены ретроактивно к ранее опубликованным стандартам C++.
| DR | Применимо к | Поведение, как опубликовано | Правильное поведение |
|---|---|---|---|
| LWG 20 | C++98 | тип возвращаемого значения был string_type | изменён на char_type |
См. также
|
[virtual] | предоставляет количество цифр между каждой парой разделителей тысяч (виртуальная защищенная член-функция) |
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/w/cpp/locale/numpunct/thousands_sep