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
147  : locale::facet(_Refs)
148  { // construct from current locale
149  _BEGIN_LOCINFO(_Lobj)
150  _Init(_Lobj);
151  if (_Kseparator == 0)
152  _Kseparator = // NB: differs from "C" locale
153  _MAKLOCCHR(_Elem, ',', _Lobj._Getcvt());
154  _END_LOCINFO()
155  }
if(_Source==NULL||_DestinationSize< _SourceSize)
Definition: corecrt_memcpy_s.h:48
_Elem _Kseparator
Definition: xlocnum:264
Definition: xlocale:137
void _Init(const _Locinfo &_Lobj, bool _Isdef=false)
Definition: xlocnum:200
#define _MAKLOCCHR(Elem, chr, cvt)
Definition: xlocale:626
_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
158  : locale::facet(_Refs)
159  { // construct from specified locale
160  _Init(_Lobj, _Isdef);
161  }
Definition: xlocale:137
void _Init(const _Locinfo &_Lobj, bool _Isdef=false)
Definition: xlocnum:200
template<class _Elem >
virtual __CLR_OR_THIS_CALL numpunct< _Elem >::~numpunct ( )
inlineprotectedvirtual
174  { // destroy the object
175  _Tidy();
176  }
void _Tidy()
Definition: xlocnum:255
template<class _Elem >
numpunct< _Elem >::numpunct ( const char _Locname,
size_t  _Refs = 0,
bool  _Isdef = false 
)
inlineprotected
179  : locale::facet(_Refs)
180  { // construct from specified locale
181  _BEGIN_LOCINFO(_Lobj(_Locname))
182  _Init(_Lobj, _Isdef);
183  _END_LOCINFO()
184  }
Definition: xlocale:137
void _Init(const _Locinfo &_Lobj, bool _Isdef=false)
Definition: xlocnum:200

Member Function Documentation

template<class _Elem >
static size_t numpunct< _Elem >::_Getcat ( const locale::facet **  _Ppf = 0,
const locale _Ploc = 0 
)
inlinestatic
165  { // return locale category mask and construct standard facet
166  if (_Ppf != 0 && *_Ppf == 0)
167  *_Ppf = new numpunct<_Elem>(
168  _Locinfo(_Ploc->c_str()), 0, true);
169  return (_X_NUMERIC);
170  }
Definition: xlocinfo:53
Definition: xlocnum:111
_Ret_z_ const char * c_str() const
Definition: xlocale:424
#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
188  { // get values
189  _Dp = _MAKLOCCHR(_Elem2, _Ptr->decimal_point[0], _Cvt);
190  _Kseparator = _MAKLOCCHR(_Elem2, _Ptr->thousands_sep[0], _Cvt);
191  }
char * decimal_point
Definition: locale.h:31
_Elem _Dp
Definition: xlocnum:263
_Elem _Kseparator
Definition: xlocnum:264
#define _MAKLOCCHR(Elem, chr, cvt)
Definition: xlocale:626
char * thousands_sep
Definition: locale.h:32
template<class _Elem >
template<>
void numpunct< _Elem >::_Getvals ( wchar_t  ,
const lconv _Ptr,
_Locinfo::_Cvtvec   
)
inlineprotected
195  { // get values
196  _Dp = (_Elem)_Ptr->_W_decimal_point[0];
197  _Kseparator = (_Elem)_Ptr->_W_thousands_sep[0];
198  }
wchar_t * _W_thousands_sep
Definition: locale.h:50
_Elem _Dp
Definition: xlocnum:263
_Elem _Kseparator
Definition: xlocnum:264
wchar_t * _W_decimal_point
Definition: locale.h:49
template<class _Elem >
void numpunct< _Elem >::_Init ( const _Locinfo _Lobj,
bool  _Isdef = false 
)
inlineprotected
201  { // initialize from _Lobj
202  const lconv *_Ptr = _Lobj._Getlconv();
203  _Locinfo::_Cvtvec _Cvt = _Lobj._Getcvt(); // conversion information
204 
205  _Grouping = 0;
206  _Falsename = 0;
207  _Truename = 0;
208 
209  _TRY_BEGIN
210  _Grouping = _MAKLOCSTR(char, _Isdef ? "" : _Ptr->grouping,
211  _Lobj._Getcvt());
212  _Falsename = _MAKLOCSTR(_Elem, _Lobj._Getfalse(), _Cvt);
213  _Truename = _MAKLOCSTR(_Elem, _Lobj._Gettrue(), _Cvt);
214  _CATCH_ALL
215  _Tidy();
216  _RERAISE;
217  _CATCH_END
218 
219  if (_Isdef)
220  { // apply defaults for required facets
221 // _Grouping = _MAKLOCSTR(char, "", _Cvt);
222  _Dp = _MAKLOCCHR(_Elem, '.', _Cvt);
223  _Kseparator = _MAKLOCCHR(_Elem, ',', _Cvt);
224  }
225  else
226  _Getvals((_Elem)0, _Ptr, _Cvt);
227  }
const lconv *__CLR_OR_THIS_CALL _Getlconv() const
Definition: xlocinfo:124
void _Tidy()
Definition: xlocnum:255
const char * _Grouping
Definition: xlocnum:262
#define _TRY_BEGIN
Definition: xstddef:26
char * grouping
Definition: locale.h:33
#define _CATCH_END
Definition: xstddef:29
_Cvtvec __CLR_OR_THIS_CALL _Getcvt() const
Definition: xlocinfo:119
void _Getvals(_Elem2, const lconv *_Ptr, _Locinfo::_Cvtvec _Cvt)
Definition: xlocnum:187
const char *__CLR_OR_THIS_CALL _Gettrue() const
Definition: xlocinfo:169
const char *__CLR_OR_THIS_CALL _Getfalse() const
Definition: xlocinfo:164
_Elem _Dp
Definition: xlocnum:263
Definition: locale.h:29
const _Elem * _Truename
Definition: xlocnum:266
_Elem _Kseparator
Definition: xlocnum:264
::_Cvtvec _Cvtvec
Definition: xlocinfo:58
#define _CATCH_ALL
Definition: xstddef:28
#define _MAKLOCCHR(Elem, chr, cvt)
Definition: xlocale:626
const _Elem * _Falsename
Definition: xlocnum:265
#define _MAKLOCSTR(Elem, str, cvt)
Definition: xlocale:659
#define _RERAISE
Definition: xstddef:32
template<class _Elem >
void numpunct< _Elem >::_Tidy ( )
inlineprivate
256  { // free all storage
257  _CSTD free((void *)_Grouping);
258  _CSTD free((void *)_Falsename);
259  _CSTD free((void *)_Truename);
260  }
_ACRTIMP void __cdecl free(_Pre_maybenull_ _Post_invalid_ void *_Block)
const char * _Grouping
Definition: xlocnum:262
const _Elem * _Truename
Definition: xlocnum:266
const _Elem * _Falsename
Definition: xlocnum:265
#define _CSTD
Definition: yvals.h:570
template<class _Elem >
_Elem numpunct< _Elem >::decimal_point ( ) const
inline
122  { // return decimal point
123  return (do_decimal_point());
124  }
virtual _Elem __CLR_OR_THIS_CALL do_decimal_point() const
Definition: xlocnum:229
template<class _Elem >
virtual _Elem __CLR_OR_THIS_CALL numpunct< _Elem >::do_decimal_point ( ) const
inlineprotectedvirtual
230  { // return decimal point
231  return (_Dp);
232  }
_Elem _Dp
Definition: xlocnum:263
template<class _Elem >
virtual string_type __CLR_OR_THIS_CALL numpunct< _Elem >::do_falsename ( ) const
inlineprotectedvirtual
245  { // return name for false
246  return (string_type(_Falsename));
247  }
basic_string< _Elem, char_traits< _Elem >, allocator< _Elem > > string_type
Definition: xlocnum:116
const _Elem * _Falsename
Definition: xlocnum:265
template<class _Elem >
virtual string __CLR_OR_THIS_CALL numpunct< _Elem >::do_grouping ( ) const
inlineprotectedvirtual
240  { // return grouping string
241  return (string(_Grouping));
242  }
const char * _Grouping
Definition: xlocnum:262
template<class _Elem >
virtual _Elem __CLR_OR_THIS_CALL numpunct< _Elem >::do_thousands_sep ( ) const
inlineprotectedvirtual
235  { // return thousands separator
236  return (_Kseparator);
237  }
_Elem _Kseparator
Definition: xlocnum:264
template<class _Elem >
virtual string_type __CLR_OR_THIS_CALL numpunct< _Elem >::do_truename ( ) const
inlineprotectedvirtual
250  { // return name for true
251  return (string_type(_Truename));
252  }
basic_string< _Elem, char_traits< _Elem >, allocator< _Elem > > string_type
Definition: xlocnum:116
const _Elem * _Truename
Definition: xlocnum:266
template<class _Elem >
string_type numpunct< _Elem >::falsename ( ) const
inline
137  { // return name for false
138  return (do_falsename());
139  }
virtual string_type __CLR_OR_THIS_CALL do_falsename() const
Definition: xlocnum:244
template<class _Elem >
string numpunct< _Elem >::grouping ( ) const
inline
132  { // return grouping string
133  return (do_grouping());
134  }
virtual string __CLR_OR_THIS_CALL do_grouping() const
Definition: xlocnum:239
template<class _Elem >
_Elem numpunct< _Elem >::thousands_sep ( ) const
inline
127  { // return thousands separator
128  return (do_thousands_sep());
129  }
virtual _Elem __CLR_OR_THIS_CALL do_thousands_sep() const
Definition: xlocnum:234
template<class _Elem >
string_type numpunct< _Elem >::truename ( ) const
inline
142  { // return name for true
143  return (do_truename());
144  }
virtual string_type __CLR_OR_THIS_CALL do_truename() const
Definition: xlocnum:249

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: