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/cpp/locale/numpunct/thousands_sep