Scroll to navigation

std::numpunct::thousands_sep,do_thousands_sep(3) C++ Standard Libary std::numpunct::thousands_sep,do_thousands_sep(3)

NAME

std::numpunct::thousands_sep,do_thousands_sep - std::numpunct::thousands_sep,do_thousands_sep

Synopsis


Defined in header <locale>
public: (1)
char_type thousands_sep() const;
protected: (2)
virtual char_type do_thousands_sep() const;


1) Public member function, calls the member function do_thousands_sep of the most
derived class.
2) Returns the character to be used as the separator between digit groups when
parsing or formatting integers and integral parts of floating-point values.

Return value


The object of type char_type to use as the thousands separator. The standard
specializations of std::numpunct return ',' and L','.

Example

// Run this code


#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';
}

Output:


default locale: 12345678
locale with modified numpunct: 1 2 3 4 5 6 7 8


Defect reports


The following behavior-changing defect reports were applied retroactively to
previously published C++ standards.


DR Applied to Behavior as published Correct behavior
LWG 20 C++98 the return type was string_type changed to char_type

See also


do_grouping provides the numbers of digits between each pair of thousands separators
[virtual] (virtual protected member function)

2024.06.10 http://cppreference.com