williamr@2: /* williamr@2: * © Portions copyright (c) 2006-2007 Nokia Corporation. All rights reserved. williamr@2: * williamr@2: * Copyright (c) 1999 williamr@2: * Silicon Graphics Computer Systems, Inc. williamr@2: * williamr@2: * Copyright (c) 1999 williamr@2: * Boris Fomitchev williamr@2: * williamr@2: * This material is provided "as is", with absolutely no warranty expressed williamr@2: * or implied. Any use is at your own risk. williamr@2: * williamr@2: * Permission to use or copy this software for any purpose is hereby granted williamr@2: * without fee, provided the above notices are retained on all copies. williamr@2: * Permission to modify the code and to distribute modified code is granted, williamr@2: * provided the above notices are retained, and a notice that the code was williamr@2: * modified is included with the above copyright notice. williamr@2: * williamr@2: */ williamr@2: // WARNING: This is an internal header file, included by other C++ williamr@2: // standard library headers. You should not attempt to use this header williamr@2: // file directly. williamr@2: williamr@2: williamr@2: #ifndef _STLP_INTERNAL_NUM_PUT_H williamr@2: #define _STLP_INTERNAL_NUM_PUT_H williamr@2: williamr@2: #ifndef _STLP_INTERNAL_NUMPUNCT_H williamr@2: # include williamr@2: #endif williamr@2: #ifndef _STLP_INTERNAL_CTYPE_H williamr@2: # include williamr@2: #endif williamr@2: #ifndef _STLP_INTERNAL_OSTREAMBUF_ITERATOR_H williamr@2: # include williamr@2: #endif williamr@2: williamr@2: _STLP_BEGIN_NAMESPACE williamr@2: williamr@2: //---------------------------------------------------------------------- williamr@2: // num_put facet williamr@2: williamr@2: # ifdef _STLP_LIMITED_DEFAULT_TEMPLATES williamr@2: template williamr@2: # else williamr@2: template > > williamr@2: # endif williamr@2: class num_put: public locale::facet williamr@2: { williamr@2: friend class _Locale; williamr@2: public: williamr@2: typedef _CharT char_type; williamr@2: typedef _OutputIter iter_type; williamr@2: williamr@2: explicit num_put(size_t __refs = 0) : _BaseFacet(__refs) {} williamr@2: williamr@2: # ifndef _STLP_NO_BOOL williamr@2: iter_type put(iter_type __s, ios_base& __f, char_type __fill, williamr@2: bool __val) const { williamr@2: return do_put(__s, __f, __fill, __val); williamr@2: } williamr@2: # endif williamr@2: iter_type put(iter_type __s, ios_base& __f, char_type __fill, williamr@2: long __val) const { williamr@2: return do_put(__s, __f, __fill, __val); williamr@2: } williamr@2: williamr@2: iter_type put(iter_type __s, ios_base& __f, char_type __fill, williamr@2: unsigned long __val) const { williamr@2: return do_put(__s, __f, __fill, __val); williamr@2: } williamr@2: williamr@2: #ifdef _STLP_LONG_LONG williamr@2: iter_type put(iter_type __s, ios_base& __f, char_type __fill, williamr@2: _STLP_LONG_LONG __val) const { williamr@2: return do_put(__s, __f, __fill, __val); williamr@2: } williamr@2: williamr@2: iter_type put(iter_type __s, ios_base& __f, char_type __fill, williamr@2: unsigned _STLP_LONG_LONG __val) const { williamr@2: return do_put(__s, __f, __fill, __val); williamr@2: } williamr@2: #endif williamr@2: williamr@2: iter_type put(iter_type __s, ios_base& __f, char_type __fill, williamr@2: double __val) const { williamr@2: return do_put(__s, __f, __fill, (double)__val); williamr@2: } williamr@2: williamr@2: #ifndef _STLP_NO_LONG_DOUBLE williamr@2: iter_type put(iter_type __s, ios_base& __f, char_type __fill, williamr@2: long double __val) const { williamr@2: return do_put(__s, __f, __fill, __val); williamr@2: } williamr@2: # endif williamr@2: williamr@2: iter_type put(iter_type __s, ios_base& __f, char_type __fill, williamr@2: const void * __val) const { williamr@2: return do_put(__s, __f, __fill, __val); williamr@2: } williamr@2: williamr@2: #if defined(__LIBSTD_CPP_SYMBIAN32_WSD__) || defined(_STLP_LIBSTD_CPP_NO_STATIC_VAR_) williamr@2: _STLP_STATIC_MEMBER_DECLSPEC static locale::id& GetFacetLocaleId(); williamr@2: _STLP_STATIC_MEMBER_DECLSPEC static locale::id& williamr@2: GetFacetLocaleId(ostreambuf_iterator > *); williamr@2: _STLP_STATIC_MEMBER_DECLSPEC static locale::id& GetFacetLocaleId(char**); williamr@2: //wchar_t williamr@2: _STLP_STATIC_MEMBER_DECLSPEC static locale::id& williamr@2: GetFacetLocaleId(ostreambuf_iterator > *); williamr@2: _STLP_STATIC_MEMBER_DECLSPEC static locale::id& GetFacetLocaleId(wchar_t**); williamr@2: //adding for new iterator type williamr@2: _STLP_STATIC_MEMBER_DECLSPEC static locale::id& williamr@2: GetFacetLocaleId(back_insert_iterator *); williamr@2: #else williamr@2: _STLP_STATIC_MEMBER_DECLSPEC static locale::id id; williamr@2: #endif williamr@2: williamr@2: protected: williamr@2: ~num_put() {} williamr@2: # ifndef _STLP_NO_BOOL williamr@2: virtual _OutputIter do_put(_OutputIter __s, ios_base& __f, _CharT __fill, bool __val) const; williamr@2: # endif williamr@2: virtual _OutputIter do_put(_OutputIter __s, ios_base& __f, _CharT __fill, long __val) const; williamr@2: virtual _OutputIter do_put(_OutputIter __s, ios_base& __f, _CharT __fill, unsigned long __val) const; williamr@2: virtual _OutputIter do_put(_OutputIter __s, ios_base& __f, _CharT __fill, double __val) const; williamr@2: #ifndef _STLP_NO_LONG_DOUBLE williamr@2: virtual _OutputIter do_put(_OutputIter __s, ios_base& __f, _CharT __fill, long double __val) const; williamr@2: #endif williamr@2: williamr@2: #ifdef _STLP_LONG_LONG williamr@2: virtual _OutputIter do_put(_OutputIter __s, ios_base& __f, _CharT __fill, _STLP_LONG_LONG __val) const; williamr@2: virtual _OutputIter do_put(_OutputIter __s, ios_base& __f, _CharT __fill, williamr@2: unsigned _STLP_LONG_LONG __val) const ; williamr@2: #endif /* _STLP_LONG_LONG */ williamr@2: virtual _OutputIter do_put(_OutputIter __s, ios_base& __f, _CharT __fill, const void* __val) const; williamr@2: }; williamr@2: williamr@2: # ifdef _STLP_USE_TEMPLATE_EXPORT williamr@2: _STLP_EXPORT_TEMPLATE_CLASS num_put > >; williamr@2: // _STLP_EXPORT_TEMPLATE_CLASS num_put; williamr@2: # ifndef _STLP_NO_WCHAR_T williamr@2: _STLP_EXPORT_TEMPLATE_CLASS num_put > >; williamr@2: // _STLP_EXPORT_TEMPLATE_CLASS num_put; williamr@2: # endif /* _STLP_NO_WCHAR_T */ williamr@2: # endif williamr@2: williamr@2: # if defined (_STLP_EXPOSE_STREAM_IMPLEMENTATION) williamr@2: williamr@2: template williamr@2: char* _STLP_CALL williamr@2: __write_integer_backward(char* __buf, ios_base::fmtflags __flags, _Integer __x); williamr@2: williamr@2: extern _STLP_DECLSPEC int _STLP_CALL __string_to_float(const string&, float&); williamr@2: extern _STLP_DECLSPEC int _STLP_CALL __string_to_float(const string&, double&); williamr@2: extern _STLP_DECLSPEC void _STLP_CALL __write_float(string&, ios_base::fmtflags, int, double); williamr@2: # ifndef _STLP_NO_LONG_DOUBLE williamr@2: int _STLP_CALL __string_to_float(const string&, long double&); williamr@2: extern _STLP_DECLSPEC void _STLP_CALL __write_float(string&, ios_base::fmtflags, int, long double); williamr@2: # endif williamr@2: williamr@2: #ifndef _STLP_NO_WCHAR_T williamr@2: extern _STLP_DECLSPEC wchar_t* _STLP_CALL __convert_float_buffer(const char*, const char*, wchar_t*, const ctype&, wchar_t); williamr@2: #endif williamr@2: extern _STLP_DECLSPEC void _STLP_CALL __adjust_float_buffer(char*, char*, char); williamr@2: williamr@2: extern _STLP_DECLSPEC char* _STLP_CALL williamr@2: __write_integer(char* buf, ios_base::fmtflags flags, long x); williamr@2: williamr@2: extern _STLP_DECLSPEC ptrdiff_t _STLP_CALL __insert_grouping(char* first, char* last, const string&, char, char, char, int); williamr@2: # ifndef _STLP_NO_WCHAR_T williamr@2: extern _STLP_DECLSPEC ptrdiff_t _STLP_CALL __insert_grouping(wchar_t*, wchar_t*, const string&, wchar_t, wchar_t, wchar_t, int); williamr@2: # endif williamr@2: williamr@2: # endif williamr@2: williamr@2: # if defined (__BORLANDC__) && defined (_RTLDLL) williamr@2: inline void _Stl_loc_init_num_put() { williamr@2: williamr@2: num_put > >::id._M_index = 14; williamr@2: num_put::id._M_index = 15; williamr@2: williamr@2: # ifndef _STLP_NO_WCHAR_T williamr@2: num_put > > ::id._M_index = 33; williamr@2: num_put::id._M_index = 34; williamr@2: # endif williamr@2: williamr@2: } williamr@2: williamr@2: # endif williamr@2: williamr@2: _STLP_END_NAMESPACE williamr@2: williamr@2: # if defined (_STLP_EXPOSE_STREAM_IMPLEMENTATION) && ! defined (_STLP_LINK_TIME_INSTANTIATION) williamr@2: # include williamr@2: # endif williamr@2: williamr@2: #endif /* _STLP_INTERNAL_NUMERIC_FACETS_H */ williamr@2: williamr@2: // Local Variables: williamr@2: // mode:C++ williamr@2: // End: williamr@2: