790 const string _Grouping = _Ppunct_fac->grouping();
791 int _Ifracdigits = _Ppunct_fac->frac_digits();
792 unsigned int _Fracdigits = _Ifracdigits < 0 ? -_Ifracdigits
795 if (
_Val.size() <= _Fracdigits)
796 _Val.insert((
size_t)0, _Fracdigits -
_Val.size() + 1, _E0);
797 else if (*_Grouping.c_str() !=
CHAR_MAX &&
'\0' < *_Grouping.c_str())
799 const _Elem _Kseparator = _Ppunct_fac->thousands_sep();
800 const char *_Pg = _Grouping.c_str();
801 size_t _Off =
_Val.size() - _Fracdigits;
803 while (*_Pg !=
CHAR_MAX &&
'\0' < *_Pg
804 && (
size_t)*_Pg < _Off)
806 _Val.insert(_Off -= *_Pg, (
size_t)1, _Kseparator);
816 _Pattern = _Ppunct_fac->neg_format();
817 _Sign = _Ppunct_fac->negative_sign();
821 _Pattern = _Ppunct_fac->pos_format();
822 _Sign = _Ppunct_fac->positive_sign();
827 _Symbol = _Ppunct_fac->curr_symbol();
829 bool _Intern =
false;
830 size_t _Fillcount, _Off;
831 for (_Fillcount = 0, _Off = 0; _Off < 4; ++_Off)
832 switch (_Pattern.
field[_Off])
835 _Fillcount += _Symbol.size();
839 _Fillcount += _Sign.size();
843 _Fillcount +=
_Val.size() + (0 < _Fracdigits ? 1 : 0)
844 + (
_Val.size() <= _Fracdigits
845 ? _Fracdigits -
_Val.size() + 1 : 0);
858 _Fillcount = _Iosbase.
width() <= 0
862 ios_base::fmtflags _Afl =
871 for (_Off = 0; _Off < 4; ++_Off)
872 switch (_Pattern.
field[_Off])
879 if (0 < _Sign.size())
884 if (_Fracdigits == 0)
887 else if (
_Val.size() <= _Fracdigits)
890 *
_Dest++ = _Ppunct_fac->decimal_point();
892 _Fracdigits -
_Val.size());
898 _Val.size() - _Fracdigits);
899 *_Dest++ = _Ppunct_fac->decimal_point();
900 _Dest =
_Put(_Dest,
_Val.end() - _Fracdigits,
906 _Dest =
_Rep(_Dest, _Fill, 1);
912 _Dest =
_Rep(_Dest, _Fill, _Fillcount);
917 if (1 < _Sign.size())
918 _Dest =
_Put(_Dest, _Sign.begin() + 1,
921 return (
_Rep(_Dest, _Fill, _Fillcount));
moneypunct< _Elem, true > _Mypunct1
Definition: xlocmon:657
unsigned _Dest
Definition: mbstring.h:107
unsigned int size_t
Definition: sourceannotations.h:19
#define _USE(loc, fac)
Definition: xlocale:499
static _OutIt _Put(_OutIt _Dest, typename string_type::const_iterator _Source, size_t _Count)
Definition: xlocmon:924
locale __CLR_OR_THIS_CALL getloc() const
Definition: xiosbase:432
fmtflags __CLR_OR_THIS_CALL flags() const
Definition: xiosbase:375
static _OutIt _Rep(_OutIt _Dest, _Elem _Ch, size_t _Count)
Definition: xlocmon:932
streamsize __CLR_OR_THIS_CALL width() const
Definition: xiosbase:420
static constexpr _Fmtflags showbase
Definition: xiosbase:58
static constexpr _Fmtflags internal
Definition: xiosbase:63
moneypunct< _Elem, false > _Mypunct0
Definition: xlocmon:656
char field[4]
Definition: xlocmon:28
#define CHAR_MAX
Definition: limits.h:24
basic_string< _Elem, char_traits< _Elem >, allocator< _Elem > > string_type
Definition: xlocmon:663
_FwdIt const _Ty _Val
Definition: algorithm:1938
static constexpr _Fmtflags adjustfield
Definition: xiosbase:75
static constexpr _Fmtflags left
Definition: xiosbase:61