示例#1
0
numpunct_byname<char>::numpunct_byname(const char* name, size_t refs)
  : numpunct<char>(refs),
    _M_numeric(__acquire_numeric(name))
{
  if (!_M_numeric)
    locale::_M_throw_runtime_error();

  _M_truename  = _Locale_true(_M_numeric);
  _M_falsename = _Locale_false(_M_numeric);
}
示例#2
0
numpunct_byname<wchar_t>::numpunct_byname(const char* name, size_t refs)
: numpunct<wchar_t>(refs) {
  if (!name)
    locale::_M_throw_on_null_name();

  int __err_code;
  char buf[_Locale_MAX_SIMPLE_NAME];
  _M_numeric = _STLP_PRIV __acquire_numeric(name, buf, 0, &__err_code);
  if (!_M_numeric)
    locale::_M_throw_on_creation_failure(__err_code, name, "numpunct");
}
示例#3
0
numpunct_byname<wchar_t>::numpunct_byname(const char* name, size_t refs, _Locale_name_hint* hint)
  : numpunct<wchar_t>(refs),
    _M_numeric(_STLP_PRIV __acquire_numeric(name, hint)) {
  if (!_M_numeric)
    locale::_M_throw_runtime_error();

  const char* truename  = _Locale_true(_M_numeric);
  const char* falsename = _Locale_false(_M_numeric);
  _M_truename.resize(strlen(truename));
  _M_falsename.resize(strlen(falsename));
  copy(truename,  truename  + strlen(truename), _M_truename.begin());
  copy(falsename, falsename + strlen(falsename), _M_falsename.begin());
}
示例#4
0
_STLP_END_NAMESPACE

#endif /* MBSTATE_T */

_STLP_BEGIN_NAMESPACE

// numpunct_byname<char>
numpunct_byname<char>::numpunct_byname(const char* name, size_t refs, _Locale_name_hint* hint)
  : numpunct<char>(refs),
    _M_numeric(_STLP_PRIV __acquire_numeric(name, hint)) {
  if (!_M_numeric)
    locale::_M_throw_runtime_error();

  _M_truename  = _Locale_true(_M_numeric);
  _M_falsename = _Locale_false(_M_numeric);
}