STLdoc
STLdocumentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
Public Types | Public Member Functions | Static Public Member Functions | Static Public Attributes | Protected Member Functions | Private Member Functions | Private Attributes | List of all members
numpunct< _Elem > Class Template Reference
Inheritance diagram for numpunct< _Elem >:
locale::facet _Facet_base _Crt_new_delete numpunct_byname< _Elem >

Public Types

typedef basic_string< _Elem, char_traits< _Elem >, allocator< _Elem > > string_type
 
typedef _Elem char_type
 

Public Member Functions

_Elem decimal_point () const
 
_Elem thousands_sep () const
 
string grouping () const
 
string_type falsename () const
 
string_type truename () const
 
 numpunct (size_t _Refs=0)
 
 numpunct (const _Locinfo &_Lobj, size_t _Refs=0, bool _Isdef=false)
 
- Public Member Functions inherited from locale::facet
virtual void __CLR_OR_THIS_CALL _Incref ()
 
virtual _Facet_base *__CLR_OR_THIS_CALL _Decref ()
 
__CLR_OR_THIS_CALL facet (const facet &)=delete
 
facet &__CLR_OR_THIS_CALL operator= (const facet &)=delete
 
- Public Member Functions inherited from _Facet_base
virtual __CLR_OR_THIS_CALL ~_Facet_base () _NOEXCEPT
 

Static Public Member Functions

static size_t _Getcat (const locale::facet **_Ppf=0, const locale *_Ploc=0)
 
- Static Public Member Functions inherited from locale::facet
static size_t __CLRCALL_OR_CDECL _Getcat (const facet **=0, const locale *=0)
 

Static Public Attributes

__PURE_APPDOMAIN_GLOBAL static _CRTIMP2_PURE locale::id id
 

Protected Member Functions

virtual __CLR_OR_THIS_CALL ~numpunct () _NOEXCEPT
 
 numpunct (const char *_Locname, size_t _Refs=0, bool _Isdef=false)
 
template<class _Elem2 >
void _Getvals (_Elem2, const lconv *_Ptr, _Locinfo::_Cvtvec _Cvt)
 
template<>
void _Getvals (wchar_t, const lconv *_Ptr, _Locinfo::_Cvtvec)
 
void _Init (const _Locinfo &_Lobj, bool _Isdef=false)
 
virtual _Elem __CLR_OR_THIS_CALL do_decimal_point () const
 
virtual _Elem __CLR_OR_THIS_CALL do_thousands_sep () const
 
virtual string __CLR_OR_THIS_CALL do_grouping () const
 
virtual string_type __CLR_OR_THIS_CALL do_falsename () const
 
virtual string_type __CLR_OR_THIS_CALL do_truename () const
 
- Protected Member Functions inherited from locale::facet
__CLR_OR_THIS_CALL facet (size_t _Initrefs=0)
 
virtual __CLR_OR_THIS_CALL ~facet () _NOEXCEPT
 

Private Member Functions

void _Tidy ()
 

Private Attributes

const char * _Grouping
 
_Elem _Dp
 
_Elem _Kseparator
 
const _Elem * _Falsename
 
const _Elem * _Truename
 

Member Typedef Documentation

template<class _Elem >
typedef _Elem numpunct< _Elem >::char_type
template<class _Elem >
typedef basic_string<_Elem, char_traits<_Elem>, allocator<_Elem> > numpunct< _Elem >::string_type

Constructor & Destructor Documentation

template<class _Elem >
numpunct< _Elem >::numpunct ( size_t  _Refs = 0)
inlineexplicit
148  : locale::facet(_Refs)
149  { // construct from current locale
150  _BEGIN_LOCINFO(_Lobj)
151  _Init(_Lobj);
152  if (_Kseparator == 0)
153  _Kseparator = // NB: differs from "C" locale
154  _MAKLOCCHR(_Elem, ',', _Lobj._Getcvt());
155  _END_LOCINFO()
156  }
_Elem _Kseparator
Definition: xlocnum:265
Definition: xlocale:138
void _Init(const _Locinfo &_Lobj, bool _Isdef=false)
Definition: xlocnum:201
#define _MAKLOCCHR(Elem, chr, cvt)
Definition: xlocale:680
if(__pUnknown!=*__ppTargetUnknown)
Definition: vccorlib.h:399
_CRTIMP2_PURE _Cvtvec __CLRCALL_PURE_OR_CDECL _Getcvt(void)
template<class _Elem >
numpunct< _Elem >::numpunct ( const _Locinfo _Lobj,
size_t  _Refs = 0,
bool  _Isdef = false 
)
inline
159  : locale::facet(_Refs)
160  { // construct from specified locale
161  _Init(_Lobj, _Isdef);
162  }
Definition: xlocale:138
void _Init(const _Locinfo &_Lobj, bool _Isdef=false)
Definition: xlocnum:201
template<class _Elem >
virtual __CLR_OR_THIS_CALL numpunct< _Elem >::~numpunct ( )
inlineprotectedvirtual
175  { // destroy the object
176  _Tidy();
177  }
void _Tidy()
Definition: xlocnum:256
template<class _Elem >
numpunct< _Elem >::numpunct ( const char *  _Locname,
size_t  _Refs = 0,
bool  _Isdef = false 
)
inlineprotected
180  : locale::facet(_Refs)
181  { // construct from specified locale
182  _BEGIN_LOCINFO(_Lobj(_Locname))
183  _Init(_Lobj, _Isdef);
184  _END_LOCINFO()
185  }
Definition: xlocale:138
void _Init(const _Locinfo &_Lobj, bool _Isdef=false)
Definition: xlocnum:201

Member Function Documentation

template<class _Elem >
static size_t numpunct< _Elem >::_Getcat ( const locale::facet **  _Ppf = 0,
const locale _Ploc = 0 
)
inlinestatic
166  { // return locale category mask and construct standard facet
167  if (_Ppf != 0 && *_Ppf == 0)
168  *_Ppf = new numpunct<_Elem>(
169  _Locinfo(_Ploc->c_str()), 0, true);
170  return (_X_NUMERIC);
171  }
Definition: xlocinfo:54
Definition: xlocnum:112
const char * c_str() const
Definition: xlocale:452
#define _X_NUMERIC
Definition: xlocinfo.h:41
template<class _Elem >
template<class _Elem2 >
void numpunct< _Elem >::_Getvals ( _Elem2  ,
const lconv *  _Ptr,
_Locinfo::_Cvtvec  _Cvt 
)
inlineprotected
189  { // get values
190  _Dp = _MAKLOCCHR(_Elem2, _Ptr->decimal_point[0], _Cvt);
191  _Kseparator = _MAKLOCCHR(_Elem2, _Ptr->thousands_sep[0], _Cvt);
192  }
_Elem _Dp
Definition: xlocnum:264
_Elem _Kseparator
Definition: xlocnum:265
#define _MAKLOCCHR(Elem, chr, cvt)
Definition: xlocale:680
template<class _Elem >
template<>
void numpunct< _Elem >::_Getvals ( wchar_t  ,
const lconv *  _Ptr,
_Locinfo::_Cvtvec   
)
inlineprotected
196  { // get values
197  _Dp = (_Elem)_Ptr->_W_decimal_point[0];
198  _Kseparator = (_Elem)_Ptr->_W_thousands_sep[0];
199  }
_Elem _Dp
Definition: xlocnum:264
_Elem _Kseparator
Definition: xlocnum:265
template<class _Elem >
void numpunct< _Elem >::_Init ( const _Locinfo _Lobj,
bool  _Isdef = false 
)
inlineprotected
202  { // initialize from _Lobj
203  const lconv *_Ptr = _Lobj._Getlconv();
204  _Locinfo::_Cvtvec _Cvt = _Lobj._Getcvt(); // conversion information
205 
206  _Grouping = 0;
207  _Falsename = 0;
208  _Truename = 0;
209 
210  _TRY_BEGIN
211  _Grouping = _MAKLOCSTR(char, _Isdef ? "" : _Ptr->grouping,
212  _Lobj._Getcvt());
213  _Falsename = _MAKLOCSTR(_Elem, _Lobj._Getfalse(), _Cvt);
214  _Truename = _MAKLOCSTR(_Elem, _Lobj._Gettrue(), _Cvt);
215  _CATCH_ALL
216  _Tidy();
217  _RERAISE;
218  _CATCH_END
219 
220  if (_Isdef)
221  { // apply defaults for required facets
222 // _Grouping = _MAKLOCSTR(char, "", _Cvt);
223  _Dp = _MAKLOCCHR(_Elem, '.', _Cvt);
224  _Kseparator = _MAKLOCCHR(_Elem, ',', _Cvt);
225  }
226  else
227  _Getvals((_Elem)0, _Ptr, _Cvt);
228  }
const lconv *__CLR_OR_THIS_CALL _Getlconv() const
Definition: xlocinfo:125
void _Tidy()
Definition: xlocnum:256
const char * _Grouping
Definition: xlocnum:263
#define _TRY_BEGIN
Definition: xstddef:60
#define _CATCH_END
Definition: xstddef:63
_Cvtvec __CLR_OR_THIS_CALL _Getcvt() const
Definition: xlocinfo:120
void _Getvals(_Elem2, const lconv *_Ptr, _Locinfo::_Cvtvec _Cvt)
Definition: xlocnum:188
const char *__CLR_OR_THIS_CALL _Gettrue() const
Definition: xlocinfo:170
const char *__CLR_OR_THIS_CALL _Getfalse() const
Definition: xlocinfo:165
_Elem _Dp
Definition: xlocnum:264
const _Elem * _Truename
Definition: xlocnum:267
_Elem _Kseparator
Definition: xlocnum:265
::_Cvtvec _Cvtvec
Definition: xlocinfo:59
#define _CATCH_ALL
Definition: xstddef:62
#define _MAKLOCCHR(Elem, chr, cvt)
Definition: xlocale:680
const _Elem * _Falsename
Definition: xlocnum:266
#define _MAKLOCSTR(Elem, str, cvt)
Definition: xlocale:713
#define _RERAISE
Definition: xstddef:74
template<class _Elem >
void numpunct< _Elem >::_Tidy ( )
inlineprivate
257  { // free all storage
258  _CSTD free((void *)_Grouping);
259  _CSTD free((void *)_Falsename);
260  _CSTD free((void *)_Truename);
261  }
const char * _Grouping
Definition: xlocnum:263
const _Elem * _Truename
Definition: xlocnum:267
const _Elem * _Falsename
Definition: xlocnum:266
#define _CSTD
Definition: yvals.h:570
template<class _Elem >
_Elem numpunct< _Elem >::decimal_point ( ) const
inline
123  { // return decimal point
124  return (do_decimal_point());
125  }
virtual _Elem __CLR_OR_THIS_CALL do_decimal_point() const
Definition: xlocnum:230
template<class _Elem >
virtual _Elem __CLR_OR_THIS_CALL numpunct< _Elem >::do_decimal_point ( ) const
inlineprotectedvirtual
231  { // return decimal point
232  return (_Dp);
233  }
_Elem _Dp
Definition: xlocnum:264
template<class _Elem >
virtual string_type __CLR_OR_THIS_CALL numpunct< _Elem >::do_falsename ( ) const
inlineprotectedvirtual
246  { // return name for false
247  return (string_type(_Falsename));
248  }
basic_string< _Elem, char_traits< _Elem >, allocator< _Elem > > string_type
Definition: xlocnum:117
const _Elem * _Falsename
Definition: xlocnum:266
template<class _Elem >
virtual string __CLR_OR_THIS_CALL numpunct< _Elem >::do_grouping ( ) const
inlineprotectedvirtual
241  { // return grouping string
242  return (string(_Grouping));
243  }
const char * _Grouping
Definition: xlocnum:263
template<class _Elem >
virtual _Elem __CLR_OR_THIS_CALL numpunct< _Elem >::do_thousands_sep ( ) const
inlineprotectedvirtual
236  { // return thousands separator
237  return (_Kseparator);
238  }
_Elem _Kseparator
Definition: xlocnum:265
template<class _Elem >
virtual string_type __CLR_OR_THIS_CALL numpunct< _Elem >::do_truename ( ) const
inlineprotectedvirtual
251  { // return name for true
252  return (string_type(_Truename));
253  }
basic_string< _Elem, char_traits< _Elem >, allocator< _Elem > > string_type
Definition: xlocnum:117
const _Elem * _Truename
Definition: xlocnum:267
template<class _Elem >
string_type numpunct< _Elem >::falsename ( ) const
inline
138  { // return name for false
139  return (do_falsename());
140  }
virtual string_type __CLR_OR_THIS_CALL do_falsename() const
Definition: xlocnum:245
template<class _Elem >
string numpunct< _Elem >::grouping ( ) const
inline
133  { // return grouping string
134  return (do_grouping());
135  }
virtual string __CLR_OR_THIS_CALL do_grouping() const
Definition: xlocnum:240
template<class _Elem >
_Elem numpunct< _Elem >::thousands_sep ( ) const
inline
128  { // return thousands separator
129  return (do_thousands_sep());
130  }
virtual _Elem __CLR_OR_THIS_CALL do_thousands_sep() const
Definition: xlocnum:235
template<class _Elem >
string_type numpunct< _Elem >::truename ( ) const
inline
143  { // return name for true
144  return (do_truename());
145  }
virtual string_type __CLR_OR_THIS_CALL do_truename() const
Definition: xlocnum:250

Member Data Documentation

template<class _Elem >
_Elem numpunct< _Elem >::_Dp
private
template<class _Elem >
const _Elem* numpunct< _Elem >::_Falsename
private
template<class _Elem >
const char* numpunct< _Elem >::_Grouping
private
template<class _Elem >
_Elem numpunct< _Elem >::_Kseparator
private
template<class _Elem >
const _Elem* numpunct< _Elem >::_Truename
private
template<class _Elem >
__PURE_APPDOMAIN_GLOBAL locale::id numpunct< _Elem >::id
static

The documentation for this class was generated from the following file: