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

Type requirements
	  -
	  InputIt must meet the	requirements of	LegacyInputIterator.

Specializations
	  Two  standalone  (locale-independent)	 full  specializations and two
       partial
	  specializations are provided by the standard library:

	  Defined in header <locale>
	  std::money_get<char>		   parses  narrow  string  representa-
       tions of	monetary
					   values
	  std::money_get<wchar_t>	    parses wide	string representations
       of monetary
					   values
	  std::money_get<char, InputIt>	   parses  narrow  string  representa-
       tions of	monetary
					   values using	custom input iterator
	  std::money_get<wchar_t,  InputIt> parses wide	string representations
       of monetary
					   values using	custom input iterator

	  In addition, every locale object constructed in a C++	program	imple-
       ments its own
	  (locale-specific) versions of	these specializations.

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)
	  destructor	destructs a money_get facet
			(protected member function)
	  get		invokes	do_get
			(public	member function)

Protected member functions
	  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 <iostream>
	#include <sstream>
	#include <locale>
	#include <iomanip>
	#include <iterator>
	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

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		  2022.07.31		     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.0>

home | help