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

FreeBSD Manual Pages

  
 
  

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

NAME
       std::money_get -	std::money_get

Synopsis
	  Defined in header <locale>
	  template<

	      class CharT,
	      class InputIt = std::istreambuf_iterator<CharT>

	  > class money_get;

	  Class	 template  std::money_get  encapsulates	 the rules for parsing
       monetary	values
	  from character streams. The standard I/O manipulator	std::get_money
       uses the
	  std::money_get facet of the I/O stream's locale.

	  std-money get-inheritance.svg

					  Inheritance diagram

	  If  a	std::money_get specialization is not guaranteed	to be provided
       by the standard
	  library (see below), the behaviors of	its get() and do_get() 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_get<char>	  parses narrow	string representations of mon-
       etary values
	  std::money_get<wchar_t> parses 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
	    * InputIt must meet	the requirements of LegacyInputIterator.

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

Member functions
	  constructor	constructs a new money_get facet
			(public	member function)
	  get		invokes	do_get
			(public	member function)

Protected member functions
	  destructor   destructs a money_get facet
		       (protected member function)
	  do_get       parses a	monetary value from an input 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>
	#include <sstream>

	int main()
	{
	    std::string	str = "$1.11 $2.22 $3.33";
	    std::cout << std::fixed << std::setprecision(2);

	    std::cout << '\"' << str <<	"\" parsed with	the  I/O  manipulator:
       ";
	    std::istringstream s1(str);
	    s1.imbue(std::locale("en_US.UTF-8"));

	    long double	val;
	    while (s1 >> std::get_money(val))
		std::cout << val / 100 << ' ';
	    std::cout << '\n';

	    str	= "USD	1,234.56";
	    std::cout << '\"' << str <<	"\" parsed with	the facet directly: ";
	    std::istringstream s2(str);
	    s2.imbue(std::locale("en_US.UTF-8"));

	    auto& f = std::use_facet<std::money_get<char>>(s2.getloc());
	    std::ios_base::iostate err;
	    std::istreambuf_iterator<char> beg(s2), end;
	    f.get(beg, end, true, s2, err, val);

	    std::cout << val / 100 << '\n';
	}

Output:
	"$1.11 $2.22 $3.33" parsed with	the I/O	manipulator: 1.11 2.22 3.33
	"USD  1,234.56"	parsed with the	facet directly:	1234.56

	  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_get	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_get				       defined
       character container
								   types

See also
		     defines	monetary   formatting	parameters   used   by
       std::money_get and
	  moneypunct std::money_put
		     (class template)
	  money_put  formats a monetary	value for output as  a	character  se-
       quence
		     (class template)
	  get_money  parses a monetary value
	  (C++11)    (function template)

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

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

home | help