Effects: Writes characters to 
s according to
the format specified by
a 
moneypunct<charT, Intl> facet reference 
mp and
the character mapping specified by
a 
ctype<charT> facet reference 
ct
obtained from the locale returned by 
str.getloc(),
and 
str.flags().  The argument 
units is transformed into
a sequence of wide characters as if by
ct.widen(buf1, buf1 + sprintf(buf1, "%.0Lf", units), buf2)
for character buffers 
buf1 and 
buf2.If the first character in 
digits or 
buf2
is equal to 
ct.widen('-'),
then the pattern used for formatting is the result of 
mp.neg_format();
otherwise the pattern is the result of 
mp.pos_format().Digit characters are written,
interspersed with any thousands separators and decimal point
specified by the format,
in the order they appear (after the optional leading minus sign) in
digits or 
buf2.In 
digits,
only the optional leading minus sign and
the immediately subsequent digit characters
(as classified according to 
ct)
are used;
any trailing characters
(including digits appearing after a non-digit character)
are ignored
.