ReactOS Fundraising Campaign 2012
 
€ 4,410 / € 30,000

Information | Donate

Home | Info | Community | Development | myReactOS | Contact Us

  1. Home
  2. Community
  3. Development
  4. myReactOS
  5. Fundraiser 2012

  1. Main Page
  2. Alphabetical List
  3. Data Structures
  4. Directories
  5. File List
  6. Data Fields
  7. Globals
  8. Related Pages

ReactOS Development > Doxygen

_num_put.c
Go to the documentation of this file.
00001 /*
00002  * Copyright (c) 1999
00003  * Silicon Graphics Computer Systems, Inc.
00004  *
00005  * Copyright (c) 1999
00006  * Boris Fomitchev
00007  *
00008  * This material is provided "as is", with absolutely no warranty expressed
00009  * or implied. Any use is at your own risk.
00010  *
00011  * Permission to use or copy this software for any purpose is hereby granted
00012  * without fee, provided the above notices are retained on all copies.
00013  * Permission to modify the code and to distribute modified code is granted,
00014  * provided the above notices are retained, and a notice that the code was
00015  * modified is included with the above copyright notice.
00016  *
00017  */
00018 #ifndef _STLP_NUM_PUT_C
00019 #define _STLP_NUM_PUT_C
00020 
00021 #ifndef _STLP_INTERNAL_NUM_PUT_H
00022 #  include <stl/_num_put.h>
00023 #endif
00024 
00025 #ifndef _STLP_INTERNAL_LIMITS
00026 #  include <stl/_limits.h>
00027 #endif
00028 
00029 _STLP_BEGIN_NAMESPACE
00030 
00031 _STLP_MOVE_TO_PRIV_NAMESPACE
00032 
00033 // __do_put_float and its helper functions.  Strategy: write the output
00034 // to a buffer of char, transform the buffer to _CharT, and then copy
00035 // it to the output.
00036 
00037 //----------------------------------------------------------------------
00038 // num_put facet
00039 
00040 template <class _CharT, class _OutputIter>
00041 _OutputIter  _STLP_CALL
00042 __copy_float_and_fill(const _CharT* __first, const _CharT* __last,
00043                       _OutputIter __oi,
00044                       ios_base::fmtflags __flags,
00045                       streamsize __width, _CharT __fill,
00046                       _CharT __xplus, _CharT __xminus) {
00047   if (__width <= __last - __first)
00048     return _STLP_STD::copy(__first, __last, __oi);
00049   else {
00050     streamsize __pad = __width - (__last - __first);
00051     ios_base::fmtflags __dir = __flags & ios_base::adjustfield;
00052 
00053     if (__dir == ios_base::left) {
00054       __oi = _STLP_STD::copy(__first, __last, __oi);
00055       return _STLP_PRIV __fill_n(__oi, __pad, __fill);
00056     }
00057     else if (__dir == ios_base::internal && __first != __last &&
00058              (*__first == __xplus || *__first == __xminus)) {
00059       *__oi++ = *__first++;
00060       __oi = _STLP_PRIV __fill_n(__oi, __pad, __fill);
00061       return _STLP_STD::copy(__first, __last, __oi);
00062     }
00063     else {
00064       __oi = _STLP_PRIV __fill_n(__oi, __pad, __fill);
00065       return _STLP_STD::copy(__first, __last, __oi);
00066     }
00067   }
00068 }
00069 
00070 #if !defined (_STLP_NO_WCHAR_T)
00071 // Helper routine for wchar_t
00072 template <class _OutputIter>
00073 _OutputIter  _STLP_CALL
00074 __put_float(__iostring &__str, _OutputIter __oi,
00075             ios_base& __f, wchar_t __fill,
00076             wchar_t __decimal_point, wchar_t __sep,
00077             size_t __group_pos, const string& __grouping) {
00078   const ctype<wchar_t>& __ct = use_facet<ctype<wchar_t> >(__f.getloc());
00079 
00080   __iowstring __wbuf;
00081   __convert_float_buffer(__str, __wbuf, __ct, __decimal_point);
00082 
00083   if (!__grouping.empty()) {
00084     __insert_grouping(__wbuf, __group_pos, __grouping,
00085                       __sep, __ct.widen('+'), __ct.widen('-'), 0);
00086   }
00087 
00088   return __copy_float_and_fill(__wbuf.data(), __wbuf.data() + __wbuf.size(), __oi,
00089                                __f.flags(), __f.width(0), __fill, __ct.widen('+'), __ct.widen('-'));
00090 }
00091 #endif /* WCHAR_T */
00092 
00093 // Helper routine for char
00094 template <class _OutputIter>
00095 _OutputIter  _STLP_CALL
00096 __put_float(__iostring &__str, _OutputIter __oi,
00097             ios_base& __f, char __fill,
00098             char __decimal_point, char __sep,
00099             size_t __group_pos, const string& __grouping) {
00100   if ((__group_pos < __str.size()) && (__str[__group_pos] == '.')) {
00101     __str[__group_pos] = __decimal_point;
00102   }
00103 
00104   if (!__grouping.empty()) {
00105     __insert_grouping(__str, __group_pos,
00106                       __grouping, __sep, '+', '-', 0);
00107   }
00108 
00109   return __copy_float_and_fill(__str.data(), __str.data() + __str.size(), __oi,
00110                                __f.flags(), __f.width(0), __fill, '+', '-');
00111 }
00112 
00113 template <class _CharT, class _OutputIter, class _Float>
00114 _OutputIter _STLP_CALL
00115 __do_put_float(_OutputIter __s, ios_base& __f,
00116                 _CharT __fill, _Float __x) {
00117   __iostring __buf;
00118 
00119   size_t __group_pos = __write_float(__buf, __f.flags(), (int)__f.precision(), __x);
00120 
00121   const numpunct<_CharT>& __np = use_facet<numpunct<_CharT> >(__f.getloc());
00122   return __put_float(__buf, __s, __f, __fill,
00123                      __np.decimal_point(), __np.thousands_sep(),
00124                      __group_pos, __np.grouping());
00125 }
00126 
00127 inline void __get_money_digits_aux (__iostring &__buf, ios_base &, _STLP_LONGEST_FLOAT_TYPE __x)
00128 { __get_floor_digits(__buf, __x); }
00129 
00130 #if !defined (_STLP_NO_WCHAR_T)
00131 inline void __get_money_digits_aux (__iowstring &__wbuf, ios_base &__f, _STLP_LONGEST_FLOAT_TYPE __x) {
00132   __iostring __buf;
00133   __get_floor_digits(__buf, __x);
00134 
00135   const ctype<wchar_t>& __ct = use_facet<ctype<wchar_t> >(__f.getloc());
00136   __convert_float_buffer(__buf, __wbuf, __ct, wchar_t(0), false);
00137 }
00138 #endif
00139 
00140 template <class _CharT>
00141 void _STLP_CALL __get_money_digits(_STLP_BASIC_IOSTRING(_CharT) &__buf, ios_base& __f, _STLP_LONGEST_FLOAT_TYPE __x)
00142 { __get_money_digits_aux(__buf, __f, __x); }
00143 
00144 // _M_do_put_integer and its helper functions.
00145 
00146 template <class _CharT, class _OutputIter>
00147 _OutputIter _STLP_CALL
00148 __copy_integer_and_fill(const _CharT* __buf, ptrdiff_t __len,
00149                         _OutputIter __oi,
00150                         ios_base::fmtflags __flg, streamsize __wid, _CharT __fill,
00151                         _CharT __xplus, _CharT __xminus) {
00152   if (__len >= __wid)
00153     return _STLP_STD::copy(__buf, __buf + __len, __oi);
00154   else {
00155     //casting numeric_limits<ptrdiff_t>::max to streamsize only works is ptrdiff_t is signed or streamsize representation
00156     //is larger than ptrdiff_t one.
00157     _STLP_STATIC_ASSERT((sizeof(streamsize) > sizeof(ptrdiff_t)) ||
00158                         ((sizeof(streamsize) == sizeof(ptrdiff_t)) && numeric_limits<ptrdiff_t>::is_signed))
00159     ptrdiff_t __pad = __STATIC_CAST(ptrdiff_t, (min) (__STATIC_CAST(streamsize, (numeric_limits<ptrdiff_t>::max)()),
00160                                                       __STATIC_CAST(streamsize, __wid - __len)));
00161     ios_base::fmtflags __dir = __flg & ios_base::adjustfield;
00162 
00163     if (__dir == ios_base::left) {
00164       __oi = _STLP_STD::copy(__buf, __buf + __len, __oi);
00165       return _STLP_PRIV __fill_n(__oi, __pad, __fill);
00166     }
00167     else if (__dir == ios_base::internal && __len != 0 &&
00168              (__buf[0] == __xplus || __buf[0] == __xminus)) {
00169       *__oi++ = __buf[0];
00170       __oi = __fill_n(__oi, __pad, __fill);
00171       return _STLP_STD::copy(__buf + 1, __buf + __len, __oi);
00172     }
00173     else if (__dir == ios_base::internal && __len >= 2 &&
00174              (__flg & ios_base::showbase) &&
00175              (__flg & ios_base::basefield) == ios_base::hex) {
00176       *__oi++ = __buf[0];
00177       *__oi++ = __buf[1];
00178       __oi = __fill_n(__oi, __pad, __fill);
00179       return _STLP_STD::copy(__buf + 2, __buf + __len, __oi);
00180     }
00181     else {
00182       __oi = __fill_n(__oi, __pad, __fill);
00183       return _STLP_STD::copy(__buf, __buf + __len, __oi);
00184     }
00185   }
00186 }
00187 
00188 #if !defined (_STLP_NO_WCHAR_T)
00189 // Helper function for wchar_t
00190 template <class _OutputIter>
00191 _OutputIter _STLP_CALL
00192 __put_integer(char* __buf, char* __iend, _OutputIter __s,
00193               ios_base& __f,
00194               ios_base::fmtflags __flags, wchar_t __fill) {
00195   locale __loc = __f.getloc();
00196   const ctype<wchar_t>& __ct = use_facet<ctype<wchar_t> >(__loc);
00197 
00198   wchar_t __xplus  = __ct.widen('+');
00199   wchar_t __xminus = __ct.widen('-');
00200 
00201   wchar_t __wbuf[64];
00202   __ct.widen(__buf, __iend, __wbuf);
00203   ptrdiff_t __len = __iend - __buf;
00204   wchar_t* __eend = __wbuf + __len;
00205 
00206   const numpunct<wchar_t>& __np = use_facet<numpunct<wchar_t> >(__loc);
00207   const string& __grouping = __np.grouping();
00208 
00209   if (!__grouping.empty()) {
00210     int __basechars;
00211     if (__flags & ios_base::showbase)
00212       switch (__flags & ios_base::basefield) {
00213         case ios_base::hex: __basechars = 2; break;
00214         case ios_base::oct: __basechars = 1; break;
00215         default: __basechars = 0;
00216       }
00217     else
00218       __basechars = 0;
00219 
00220     __len = __insert_grouping(__wbuf, __eend, __grouping, __np.thousands_sep(),
00221                               __xplus, __xminus, __basechars);
00222   }
00223 
00224   return __copy_integer_and_fill((wchar_t*)__wbuf, __len, __s,
00225                                  __flags, __f.width(0), __fill, __xplus, __xminus);
00226 }
00227 #endif
00228 
00229 // Helper function for char
00230 template <class _OutputIter>
00231 _OutputIter _STLP_CALL
00232 __put_integer(char* __buf, char* __iend, _OutputIter __s,
00233               ios_base& __f, ios_base::fmtflags __flags, char __fill) {
00234   char __grpbuf[64];
00235   ptrdiff_t __len = __iend - __buf;
00236 
00237   const numpunct<char>& __np = use_facet<numpunct<char> >(__f.getloc());
00238   const string& __grouping = __np.grouping();
00239 
00240   if (!__grouping.empty()) {
00241     int __basechars;
00242     if (__flags & ios_base::showbase)
00243       switch (__flags & ios_base::basefield) {
00244         case ios_base::hex: __basechars = 2; break;
00245         case ios_base::oct: __basechars = 1; break;
00246         default: __basechars = 0;
00247       }
00248     else
00249       __basechars = 0;
00250 
00251      // make sure there is room at the end of the buffer
00252      // we pass to __insert_grouping
00253     _STLP_STD::copy(__buf, __iend, (char *) __grpbuf);
00254     __buf = __grpbuf;
00255     __iend = __grpbuf + __len;
00256     __len = __insert_grouping(__buf, __iend, __grouping, __np.thousands_sep(),
00257                               '+', '-', __basechars);
00258   }
00259 
00260   return __copy_integer_and_fill(__buf, __len, __s, __flags, __f.width(0), __fill, '+', '-');
00261 }
00262 
00263 #if defined (_STLP_LONG_LONG)
00264 typedef _STLP_LONG_LONG __max_int_t;
00265 typedef unsigned _STLP_LONG_LONG __umax_int_t;
00266 #else
00267 typedef long __max_int_t;
00268 typedef unsigned long __umax_int_t;
00269 #endif
00270 
00271 _STLP_DECLSPEC const char* _STLP_CALL __hex_char_table_lo();
00272 _STLP_DECLSPEC const char* _STLP_CALL __hex_char_table_hi();
00273 
00274 template <class _Integer>
00275 inline char* _STLP_CALL
00276 __write_decimal_backward(char* __ptr, _Integer __x, ios_base::fmtflags __flags, const __true_type& /* is_signed */) {
00277   const bool __negative = __x < 0 ;
00278   __max_int_t __temp = __x;
00279   __umax_int_t __utemp = __negative?-__temp:__temp;
00280 
00281   for (; __utemp != 0; __utemp /= 10)
00282     *--__ptr = (char)((int)(__utemp % 10) + '0');
00283   // put sign if needed or requested
00284   if (__negative)
00285     *--__ptr = '-';
00286   else if (__flags & ios_base::showpos)
00287     *--__ptr = '+';
00288   return __ptr;
00289 }
00290 
00291 template <class _Integer>
00292 inline char* _STLP_CALL
00293 __write_decimal_backward(char* __ptr, _Integer __x, ios_base::fmtflags __flags, const __false_type& /* is_signed */) {
00294   for (; __x != 0; __x /= 10)
00295     *--__ptr = (char)((int)(__x % 10) + '0');
00296   // put sign if requested
00297   if (__flags & ios_base::showpos)
00298     *--__ptr = '+';
00299   return __ptr;
00300 }
00301 
00302 template <class _Integer>
00303 char* _STLP_CALL
00304 __write_integer_backward(char* __buf, ios_base::fmtflags __flags, _Integer __x) {
00305   char* __ptr = __buf;
00306 
00307   if (__x == 0) {
00308     *--__ptr = '0';
00309     if ((__flags & ios_base::showpos) && ((__flags & (ios_base::oct | ios_base::hex)) == 0))
00310       *--__ptr = '+';
00311     // oct or hex base shall not be added to the 0 value (see '#' flag in C formating strings)
00312   }
00313   else {
00314     switch (__flags & ios_base::basefield) {
00315       case ios_base::oct:
00316         {
00317           __umax_int_t __temp = __x;
00318           // if the size of integer is less than 8, clear upper part
00319           if ( sizeof(__x) < 8  && sizeof(__umax_int_t) >= 8 )
00320             __temp &= 0xFFFFFFFF;
00321 
00322           for (; __temp != 0; __temp >>=3)
00323             *--__ptr = (char)((((unsigned)__temp)& 0x7) + '0');
00324 
00325           // put leading '0' if showbase is set
00326           if (__flags & ios_base::showbase)
00327             *--__ptr = '0';
00328         }
00329         break;
00330       case ios_base::hex:
00331         {
00332           const char* __table_ptr = (__flags & ios_base::uppercase) ?
00333             __hex_char_table_hi() : __hex_char_table_lo();
00334           __umax_int_t __temp = __x;
00335           // if the size of integer is less than 8, clear upper part
00336           if ( sizeof(__x) < 8  && sizeof(__umax_int_t) >= 8 )
00337             __temp &= 0xFFFFFFFF;
00338 
00339           for (; __temp != 0; __temp >>=4)
00340             *--__ptr = __table_ptr[((unsigned)__temp & 0xF)];
00341 
00342           if (__flags & ios_base::showbase) {
00343             *--__ptr = __table_ptr[16];
00344             *--__ptr = '0';
00345           }
00346         }
00347         break;
00348       //case ios_base::dec:
00349       default:
00350         {
00351 #if defined(__HP_aCC) && (__HP_aCC == 1)
00352           bool _IsSigned = !((_Integer)-1 > 0);
00353           if (_IsSigned)
00354             __ptr = __write_decimal_backward(__ptr, __x, __flags, __true_type() );
00355           else
00356             __ptr = __write_decimal_backward(__ptr, __x, __flags, __false_type() );
00357 #else
00358           typedef typename __bool2type<numeric_limits<_Integer>::is_signed>::_Ret _IsSigned;
00359           __ptr = __write_decimal_backward(__ptr, __x, __flags, _IsSigned());
00360 #endif
00361         }
00362         break;
00363     }
00364   }
00365 
00366   // return pointer to beginning of the string
00367   return __ptr;
00368 }
00369 
00370 template <class _CharT, class _OutputIter, class _Integer>
00371 _OutputIter _STLP_CALL
00372 __do_put_integer(_OutputIter __s, ios_base& __f, _CharT __fill, _Integer __x) {
00373   // buffer size = number of bytes * number of digit necessary in the smallest Standard base (base 8, 3 digits/byte)
00374   //               plus the longest base representation '0x'
00375   // Do not use __buf_size to define __buf static buffer, some compilers (HP aCC) do not accept const variable as
00376   // the specification of a static buffer size.
00377   char __buf[sizeof(_Integer) * 3 + 2];
00378   const ptrdiff_t __buf_size = sizeof(__buf) / sizeof(char);
00379   ios_base::fmtflags __flags = __f.flags();
00380   char* __ibeg = __write_integer_backward((char*)__buf + __buf_size, __flags, __x);
00381   return __put_integer(__ibeg, (char*)__buf + __buf_size, __s, __f, __flags, __fill);
00382 }
00383 
00384 template <class _CharT, class _OutputIter>
00385 _OutputIter _STLP_CALL
00386 __do_put_bool(_OutputIter __s, ios_base& __f, _CharT __fill, bool __x) {
00387   const numpunct<_CharT>& __np = use_facet<numpunct<_CharT> >(__f.getloc());
00388 
00389   basic_string<_CharT, char_traits<_CharT>, allocator<_CharT> > __str = __x ? __np.truename() : __np.falsename();
00390 
00391   streamsize __wid = __f.width(0);
00392   if (__str.size() >= __STATIC_CAST(size_t, __wid))
00393     return _STLP_STD::copy(__str.begin(), __str.end(), __s);
00394   else {
00395     streamsize __pad = __wid - __str.size();
00396     ios_base::fmtflags __dir = __f.flags() & ios_base::adjustfield;
00397 
00398     if (__dir == ios_base::left) {
00399       __s = _STLP_STD::copy(__str.begin(), __str.end(), __s);
00400       return __fill_n(__s, __pad, __fill);
00401     }
00402     else /* covers right and internal padding */ {
00403       __s = __fill_n(__s, __pad, __fill);
00404       return _STLP_STD::copy(__str.begin(), __str.end(), __s);
00405     }
00406   }
00407 }
00408 _STLP_MOVE_TO_STD_NAMESPACE
00409 
00410 //
00411 // num_put<>
00412 //
00413 
00414 template <class _CharT, class _OutputIterator>
00415 locale::id num_put<_CharT, _OutputIterator>::id;
00416 
00417 #if !defined (_STLP_NO_BOOL)
00418 template <class _CharT, class _OutputIter>
00419 _OutputIter
00420 num_put<_CharT, _OutputIter>::do_put(_OutputIter __s, ios_base& __f, _CharT __fill,
00421                                      bool __val) const {
00422   if (!(__f.flags() & ios_base::boolalpha))
00423     // 22.2.2.2.2.23: shall return do_put for int and not directly __do_put_integer.
00424     return do_put(__s, __f, __fill, __STATIC_CAST(long, __val));
00425 
00426   return _STLP_PRIV __do_put_bool(__s, __f, __fill, __val);
00427 }
00428 #endif
00429 
00430 template <class _CharT, class _OutputIter>
00431 _OutputIter
00432 num_put<_CharT, _OutputIter>::do_put(_OutputIter __s, ios_base& __f, _CharT __fill,
00433                                      long __val) const
00434 { return _STLP_PRIV __do_put_integer(__s, __f, __fill, __val); }
00435 
00436 template <class _CharT, class _OutputIter>
00437 _OutputIter
00438 num_put<_CharT, _OutputIter>::do_put(_OutputIter __s, ios_base& __f, _CharT __fill,
00439                                      unsigned long __val) const
00440 { return _STLP_PRIV __do_put_integer(__s, __f, __fill, __val); }
00441 
00442 template <class _CharT, class _OutputIter>
00443 _OutputIter
00444 num_put<_CharT, _OutputIter>::do_put(_OutputIter __s, ios_base& __f, _CharT __fill,
00445                                      double __val) const
00446 { return _STLP_PRIV __do_put_float(__s, __f, __fill, __val); }
00447 
00448 #if !defined (_STLP_NO_LONG_DOUBLE)
00449 template <class _CharT, class _OutputIter>
00450 _OutputIter
00451 num_put<_CharT, _OutputIter>::do_put(_OutputIter __s, ios_base& __f, _CharT __fill,
00452                                      long double __val) const
00453 { return _STLP_PRIV __do_put_float(__s, __f, __fill, __val); }
00454 #endif
00455 
00456 #if defined (_STLP_LONG_LONG)
00457 template <class _CharT, class _OutputIter>
00458 _OutputIter
00459 num_put<_CharT, _OutputIter>::do_put(_OutputIter __s, ios_base& __f, _CharT __fill,
00460                                      _STLP_LONG_LONG __val) const
00461 { return _STLP_PRIV __do_put_integer(__s, __f, __fill, __val); }
00462 
00463 template <class _CharT, class _OutputIter>
00464 _OutputIter
00465 num_put<_CharT, _OutputIter>::do_put(_OutputIter __s, ios_base& __f, _CharT __fill,
00466                                      unsigned _STLP_LONG_LONG __val) const
00467 { return _STLP_PRIV __do_put_integer(__s, __f, __fill, __val); }
00468 #endif /* _STLP_LONG_LONG */
00469 
00470 
00471 // 22.2.2.2.2 Stage 1: "For conversion from void* the specifier is %p."
00472 // This is not clear and I'm really don't follow this (below).
00473 template <class _CharT, class _OutputIter>
00474 _OutputIter
00475 num_put<_CharT, _OutputIter>::do_put(_OutputIter __s, ios_base& __f, _CharT /*__fill*/,
00476                                      const void* __val) const {
00477   const ctype<_CharT>& __c_type = use_facet<ctype<_CharT> >(__f.getloc());
00478   ios_base::fmtflags __save_flags = __f.flags();
00479 
00480   __f.setf(ios_base::hex, ios_base::basefield);
00481   __f.setf(ios_base::showbase);
00482   __f.setf(ios_base::internal, ios_base::adjustfield);
00483   __f.width((sizeof(void*) * 2) + 2); // digits in pointer type plus '0x' prefix
00484   if ( __val == 0 ) {
00485     // base ('0x') not shown for null, but I really want to type it
00486     // for pointer. Print it first in this case.
00487     const char* __table_ptr = (__save_flags & ios_base::uppercase) ?
00488             _STLP_PRIV __hex_char_table_hi() : _STLP_PRIV __hex_char_table_lo();
00489     __s++ = __c_type.widen( '0' );
00490     __s++ = __c_type.widen( __table_ptr[16] );
00491     __f.width((sizeof(void*) * 2)); // digits in pointer type
00492   } else {
00493     __f.width((sizeof(void*) * 2) + 2); // digits in pointer type plus '0x' prefix
00494   }
00495 #if defined (_STLP_MSVC)
00496 #  pragma warning (push)
00497 #  pragma warning (disable : 4311) //pointer truncation from 'const void*' to 'unsigned long'
00498 #endif
00499   _OutputIter result =
00500 #ifdef _WIN64 // ReactOS, compilation with 64 bit gcc
00501 _STLP_PRIV __do_put_integer(__s, __f, __c_type.widen('0'), __REINTERPRET_CAST(unsigned _STLP_LONG_LONG,__val));
00502 #else
00503 #ifdef _STLP_LONG_LONG
00504     ( sizeof(void*) == sizeof(unsigned long) ) ?
00505 #endif
00506     _STLP_PRIV __do_put_integer(__s, __f, __c_type.widen('0'), __REINTERPRET_CAST(unsigned long,__val))
00507 #ifdef _STLP_LONG_LONG
00508       : /* ( sizeof(void*) == sizeof(unsigned _STLP_LONG_LONG) ) ? */
00509     _STLP_PRIV __do_put_integer(__s, __f, __c_type.widen('0'), __REINTERPRET_CAST(unsigned _STLP_LONG_LONG,__val))
00510 #endif
00511         ;
00512 #endif
00513 #if defined (_STLP_MSVC)
00514 #  pragma warning (pop)
00515 #endif
00516   __f.flags(__save_flags);
00517   return result;
00518 }
00519 
00520 _STLP_END_NAMESPACE
00521 
00522 #endif /* _STLP_NUM_PUT_C */
00523 
00524 // Local Variables:
00525 // mode:C++
00526 // End:

Generated on Fri May 25 2012 04:27:52 for ReactOS by doxygen 1.7.6.1

ReactOS is a registered trademark or a trademark of ReactOS Foundation in the United States and other countries.