Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
std::numpunct(3)	      C++ Standard Libary	      std::numpunct(3)

NAME
       std::numpunct - std::numpunct

Synopsis
	  Defined in header <locale>
	  template< class CharT	>
	  class	numpunct;

	  The  facet  std::numpunct  encapsulates  numeric punctuation prefer-
       ences. Stream I/O
	  operations use std::numpunct through std::num_get  and  std::num_put
       for parsing
	  numeric input	and formatting numeric output.

	  The  numbers that are	supported by std::numpunct have	the format de-
       scribed below.
	  Here digit represents	the radix set specified	by the fmtflags	 argu-
       ment value,
	  thousands-sep	 and  decimal-point are	the results of thousands_sep()
       and
	  decimal_point() functions respectively. The format of	integer	values
       is as follows:

	integer	    ::=	[sign] units
	sign	    ::=	plusminus
	plusminus   ::=	'+' | '-'
	units	    ::=	digits [thousands-sep units]
	digits	    ::=	digit [digits]

	  The number of	digits between the thousand-seps (maximum size of dig-
       its) is specified
	  by the result	of grouping().

	  The format of	floating-point values is as follows:

	floatval    ::=	[sign] units [decimal-point [digits]] [e  [sign]  dig-
       its] |
			[sign]	       decimal-point   digits	[e [sign] dig-
       its]
	e	    ::=	'e' | 'E'

	  std-numpunct-inheritance.svg

					  Inheritance diagram

Specializations
	  The standard library is guaranteed to	provide	the following special-
       izations	(they
	  are required to be implemented by any	locale object):

	  Defined in header <locale>
	  std::numpunct<char>	 provides equivalents of the "C" locale	 pref-
       erences
	  std::numpunct<wchar_t>  provides  wide  character equivalents	of the
       "C" locale
				 preferences

Member types
	  Member type Definition
	  char_type   CharT
	  string_type std::basic_string<CharT>

Member functions
	  constructor	constructs a new numpunct facet
			(public	member function)
	  destructor	destructs a numpunct facet
			(protected member function)
	  decimal_point	invokes	do_decimal_point
			(public	member function)
	  thousands_sep	invokes	do_thousands_sep
			(public	member function)
	  grouping	invokes	do_grouping
			(public	member function)
	  truename	invokes	do_truename or do_falsename
	  falsename	(public	member function)

Protected member functions
	  do_decimal_point provides the	character to use as decimal point
	  [virtual]	   (virtual protected member function)
	  do_thousands_sep provides the	character to use as thousands  separa-
       tor
	  [virtual]	   (virtual protected member function)
	  do_grouping	   provides the	numbers	of digits between each pair of
       thousands
	  [virtual]	   separators
			   (virtual protected member function)
	  do_truename	    provides  the  string  to  use  as the name	of the
       boolean true and
	  do_falsename	   false
	  [virtual]	   (virtual protected member function)

Member objects
	  static std::locale::id id id of the locale
				    (public member object)

Example
	  The following	example	changes	the string representations of true and
       false:

       // Run this code

	#include <iostream>
	#include <locale>

	struct french_bool : std::numpunct<char>
	{
	    string_type	do_truename() const override { return "vrai"; }
	    string_type	do_falsename() const override {	return "faux"; }
	};

	int main()
	{
	    std::cout << "default locale: "
		      << std::boolalpha	<< true	<< ", "	<< false << '\n';
	    std::cout.imbue(std::locale(std::cout.getloc(), new	french_bool));
	    std::cout << "locale with modified numpunct: "
		      << std::boolalpha	<< true	<< ", "	<< false << '\n';
	}

Output:
	default	locale:	true, false
	locale with modified numpunct: vrai, faux

	  Defect reports

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

	    DR	     Applied	to		 Behavior     as     published
       Correct behavior
	  LWG  338  C++98	the sign token allowed an optional	   re-
       moved the whitespace
			     whitespace	following + or -

See also
	  numpunct_byname creates a numpunct facet for the named locale
			  (class template)

http://cppreference.com		  2024.06.10		      std::numpunct(3)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=std::numpunct&sektion=3&manpath=FreeBSD+Ports+15.1.quarterly>

home | help