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

FreeBSD Manual Pages

  
 
  

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

NAME
       std::money_put -	std::money_put

Synopsis
	  Defined in header <locale>
	  template<

	      class CharT,
	      class OutputIt = std::ostreambuf_iterator<CharT>

	  > class money_put;

	  Class	 std::money_put	encapsulates the rules for formatting monetary
       values as
	  strings.  The	 standard  I/O	manipulator  std::put_money  uses  the
       std::money_put facet
	  of the I/O stream's locale.

	  std-money put-inheritance.svg

					  Inheritance diagram

	  If  a	std::money_put specialization is not guaranteed	to be provided
       by the standard
	  library (see below), the behaviors of	its put() and do_put() are not
       guaranteed as
	  specified.

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::money_put<char>	  creates  narrow  string  representations  of
       monetary	values
	  std::money_put<wchar_t> creates wide string representations of mone-
       tary values

	  In  addition,	 the  standard	library	 is also guaranteed to provide
       every specialization
	  that satisfies the following type requirements:

	    * CharT is one of
		 * char,
		 * wchar_t, and
		 * any other implementation-defined character  container  type
       that meets the
		   requirements	 for  a	character on which any of the iostream
       components can be
		   instantiated; and
	    * OutputIt must meet the requirements of LegacyOutputIterator.

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

Member functions
	  constructor	constructs a new money_put facet
			(public	member function)
	  put		invokes	do_put
			(public	member function)

Protected member functions
	  destructor   destructs a money_put facet
		       (protected member function)
	  do_put       formats a monetary value	and writes to output stream
	  [virtual]    (virtual	protected member function)

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

Example
       // Run this code

	#include <iomanip>
	#include <iostream>
	#include <iterator>
	#include <locale>

	int main()
	{
	    // using the I/O manipulator
	    std::cout.imbue(std::locale("en_US.UTF-8"));
	    std::cout << "American locale: "
		      << std::showbase << std::put_money(12345678.9) <<	'\n';

	    // using the facet directly
	    std::cout.imbue(std::locale("de_DE.UTF-8"));
	    std::cout << "German locale: ";
	    auto&  f   =   std::use_facet<std::money_put<char>>(std::cout.get-
       loc());
	    f.put({std::cout},	   false,     std::cout,     std::cout.fill(),
       12345678.9);
	    std::cout << '\n';
	}

Output:
	American locale: $123,456.79
	German locale: 123.456,79

	  Defect reports

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

	     DR	   Applied to	     Behavior as  published		  Cor-
       rect behavior
			      money_put	 was guaranteed	to accept   only guar-
       antees to accept
			      any CharT	that			   char,
	  LWG 427  C++98      meets the	requirements for a	   wchar_t and
       other
			      character	on which		   implementa-
       tion-
			      any of the  iostream  components	can    defined
       character types
			      be instantiated
			      only character type CharT	could be   can guaran-
       tee to accept
	  LWG 2392 C++98      guaranteed to be accepted	by	   implementa-
       tion-
			      money_put				       defined
       character container
								   types

See also
		     defines   monetary	  formatting   parameters   used    by
       std::money_get and
	  moneypunct std::money_put
		     (class template)
	  money_get   parses  and  constructs  a  monetary value from an input
       character sequence
		     (class template)
	  put_money  formats and outputs a monetary value
	  (C++11)    (function template)

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

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

home | help