diff options
Diffstat (limited to '6/sources/cxx-stl/stlport/stlport/stl/_numpunct.h')
-rw-r--r-- | 6/sources/cxx-stl/stlport/stlport/stl/_numpunct.h | 176 |
1 files changed, 176 insertions, 0 deletions
diff --git a/6/sources/cxx-stl/stlport/stlport/stl/_numpunct.h b/6/sources/cxx-stl/stlport/stlport/stl/_numpunct.h new file mode 100644 index 0000000..c0d0ff4 --- /dev/null +++ b/6/sources/cxx-stl/stlport/stlport/stl/_numpunct.h @@ -0,0 +1,176 @@ +/* + * Copyright (c) 1999 + * Silicon Graphics Computer Systems, Inc. + * + * Copyright (c) 1999 + * Boris Fomitchev + * + * This material is provided "as is", with absolutely no warranty expressed + * or implied. Any use is at your own risk. + * + * Permission to use or copy this software for any purpose is hereby granted + * without fee, provided the above notices are retained on all copies. + * Permission to modify the code and to distribute modified code is granted, + * provided the above notices are retained, and a notice that the code was + * modified is included with the above copyright notice. + * + */ +// WARNING: This is an internal header file, included by other C++ +// standard library headers. You should not attempt to use this header +// file directly. + + +#ifndef _STLP_INTERNAL_NUMPUNCT_H +#define _STLP_INTERNAL_NUMPUNCT_H + +#ifndef _STLP_IOS_BASE_H +# include <stl/_ios_base.h> +#endif + +# ifndef _STLP_C_LOCALE_H +# include <stl/c_locale.h> +# endif + +#ifndef _STLP_INTERNAL_STRING_H +# include <stl/_string.h> +#endif + +_STLP_BEGIN_NAMESPACE + +//---------------------------------------------------------------------- +// numpunct facets + +template <class _CharT> class numpunct {}; +template <class _CharT> class numpunct_byname {}; +template <class _Ch, class _InIt> class num_get; + +_STLP_TEMPLATE_NULL +class _STLP_CLASS_DECLSPEC numpunct<char> : public locale::facet { +public: + typedef char char_type; + typedef string string_type; + + explicit numpunct(size_t __refs = 0) + : locale::facet(__refs) {} + + char decimal_point() const { return do_decimal_point(); } + char thousands_sep() const { return do_thousands_sep(); } + string grouping() const { return do_grouping(); } + string truename() const { return do_truename(); } + string falsename() const { return do_falsename(); } + + static _STLP_STATIC_DECLSPEC locale::id id; + +protected: + ~numpunct(); + + virtual char do_decimal_point() const; + virtual char do_thousands_sep() const; + virtual string do_grouping() const; + virtual string do_truename() const; + virtual string do_falsename() const; +}; + +# if ! defined (_STLP_NO_WCHAR_T) + +_STLP_TEMPLATE_NULL +class _STLP_CLASS_DECLSPEC numpunct<wchar_t> : public locale::facet { +public: + typedef wchar_t char_type; + typedef wstring string_type; + + explicit numpunct(size_t __refs = 0) + : locale::facet(__refs) {} + + wchar_t decimal_point() const { return do_decimal_point(); } + wchar_t thousands_sep() const { return do_thousands_sep(); } + string grouping() const { return do_grouping(); } + wstring truename() const { return do_truename(); } + wstring falsename() const { return do_falsename(); } + + static _STLP_STATIC_DECLSPEC locale::id id; + +protected: + ~numpunct(); + + virtual wchar_t do_decimal_point() const; + virtual wchar_t do_thousands_sep() const; + virtual string do_grouping() const; + virtual wstring do_truename() const; + virtual wstring do_falsename() const; +}; + +# endif /* WCHAR_T */ + +_STLP_TEMPLATE_NULL +class _STLP_CLASS_DECLSPEC numpunct_byname<char> : public numpunct<char> { + friend class _Locale_impl; +public: + typedef char char_type; + typedef string string_type; + + explicit numpunct_byname(const char* __name, size_t __refs = 0); + +protected: + + ~numpunct_byname(); + + virtual char do_decimal_point() const; + virtual char do_thousands_sep() const; + virtual string do_grouping() const; + virtual string do_truename() const; + virtual string do_falsename() const; + +private: + numpunct_byname(_Locale_numeric *__numeric) + : _M_numeric(__numeric) {} + + //explicitely defined as private to avoid warnings: + typedef numpunct_byname<char> _Self; + numpunct_byname(_Self const&); + _Self& operator = (_Self const&); + + _Locale_numeric* _M_numeric; +}; + +# ifndef _STLP_NO_WCHAR_T +_STLP_TEMPLATE_NULL +class _STLP_CLASS_DECLSPEC numpunct_byname<wchar_t>: public numpunct<wchar_t> { + friend class _Locale_impl; +public: + typedef wchar_t char_type; + typedef wstring string_type; + + explicit numpunct_byname(const char* __name, size_t __refs = 0); + +protected: + ~numpunct_byname(); + + virtual wchar_t do_decimal_point() const; + virtual wchar_t do_thousands_sep() const; + virtual string do_grouping() const; + virtual wstring do_truename() const; + virtual wstring do_falsename() const; + +private: + numpunct_byname(_Locale_numeric *__numeric) + : _M_numeric(__numeric) {} + + //explicitely defined as private to avoid warnings: + typedef numpunct_byname<wchar_t> _Self; + numpunct_byname(_Self const&); + _Self& operator = (_Self const&); + + _Locale_numeric* _M_numeric; +}; + +# endif /* WCHAR_T */ + +_STLP_END_NAMESPACE + +#endif /* _STLP_NUMPUNCT_H */ + +// Local Variables: +// mode:C++ +// End: + |