781 const string _Grouping = _Ppunct_fac->grouping();
782 int _Ifracdigits = _Ppunct_fac->frac_digits();
783 unsigned int _Fracdigits = _Ifracdigits < 0 ? -_Ifracdigits
786 if (
_Val.size() <= _Fracdigits)
787 _Val.insert((
size_t)0, _Fracdigits -
_Val.size() + 1, _E0);
788 else if (*_Grouping.c_str() !=
CHAR_MAX &&
'\0' < *_Grouping.c_str())
790 const _Elem _Kseparator = _Ppunct_fac->thousands_sep();
791 const char *_Pg = _Grouping.c_str();
792 size_t _Off =
_Val.size() - _Fracdigits;
794 while (*_Pg !=
CHAR_MAX &&
'\0' < *_Pg
795 && (
size_t)*_Pg < _Off)
797 _Val.insert(_Off -= *_Pg, (
size_t)1, _Kseparator);
807 _Pattern = _Ppunct_fac->neg_format();
808 _Sign = _Ppunct_fac->negative_sign();
812 _Pattern = _Ppunct_fac->pos_format();
813 _Sign = _Ppunct_fac->positive_sign();
818 _Symbol = _Ppunct_fac->curr_symbol();
820 bool _Intern =
false;
821 size_t _Fillcount, _Off;
822 for (_Fillcount = 0, _Off = 0; _Off < 4; ++_Off)
823 switch (_Pattern.
field[_Off])
826 _Fillcount += _Symbol.size();
830 _Fillcount += _Sign.size();
834 _Fillcount +=
_Val.size() + (0 < _Fracdigits ? 1 : 0)
835 + (
_Val.size() <= _Fracdigits
836 ? _Fracdigits -
_Val.size() + 1 : 0);
849 _Fillcount = _Iosbase.
width() <= 0
853 ios_base::fmtflags _Afl =
858 _Dest =
_Rep(_Dest, _Fill, _Fillcount);
862 for (_Off = 0; _Off < 4; ++_Off)
863 switch (_Pattern.
field[_Off])
866 _Dest =
_Put(_Dest, _Symbol.begin(), _Symbol.size());
870 if (0 < _Sign.size())
871 _Dest =
_Put(_Dest, _Sign.begin(), 1);
875 if (_Fracdigits == 0)
878 else if (
_Val.size() <= _Fracdigits)
881 *_Dest++ = _Ppunct_fac->decimal_point();
882 _Dest =
_Rep(_Dest, _E0,
883 _Fracdigits -
_Val.size());
889 _Val.size() - _Fracdigits);
890 *_Dest++ = _Ppunct_fac->decimal_point();
891 _Dest =
_Put(_Dest,
_Val.end() - _Fracdigits,
897 _Dest =
_Rep(_Dest, _Fill, 1);
903 _Dest =
_Rep(_Dest, _Fill, _Fillcount);
908 if (1 < _Sign.size())
909 _Dest =
_Put(_Dest, _Sign.begin() + 1,
912 return (
_Rep(_Dest, _Fill, _Fillcount));
moneypunct< _Elem, true > _Mypunct1
Definition: xlocmon:653
#define _USE(loc, fac)
Definition: xlocale:547
_In_ int _Val
Definition: vcruntime_string.h:62
static _OutIt _Put(_OutIt _Dest, typename string_type::const_iterator _Source, size_t _Count)
Definition: xlocmon:915
locale __CLR_OR_THIS_CALL getloc() const
Definition: xiosbase:433
unsigned int size_t
Definition: sourceannotations.h:19
fmtflags __CLR_OR_THIS_CALL flags() const
Definition: xiosbase:376
static _OutIt _Rep(_OutIt _Dest, _Elem _Ch, size_t _Count)
Definition: xlocmon:923
streamsize __CLR_OR_THIS_CALL width() const
Definition: xiosbase:421
#define _DEBUG_POINTER(first)
Definition: xutility:819
static constexpr _Fmtflags showbase
Definition: xiosbase:59
static constexpr _Fmtflags internal
Definition: xiosbase:64
moneypunct< _Elem, false > _Mypunct0
Definition: xlocmon:652
char field[4]
Definition: xlocmon:27
#define CHAR_MAX
Definition: limits.h:24
basic_string< _Elem, char_traits< _Elem >, allocator< _Elem > > string_type
Definition: xlocmon:659
static constexpr _Fmtflags adjustfield
Definition: xiosbase:76
static constexpr _Fmtflags left
Definition: xiosbase:62