std::numpunct_byname
来自 cppreference.cn
定义于头文件 <locale> |
||
template< class CharT > class numpunct_byname : public std::numpunct<CharT>; |
||
std::numpunct_byname
是一个 std::numpunct facet,它封装了在构造时指定的区域设置的数字标点偏好。
目录 |
[编辑] 特化
标准库保证提供以下特化:
定义于头文件
<locale> | |
std::numpunct_byname<char> | 用于窄字符 I/O 的特定于区域设置的 std::numpunct facet |
std::numpunct_byname<wchar_t> | 用于宽字符 I/O 的特定于区域设置的 std::numpunct facet |
[编辑] 嵌套类型
类型 | 定义 |
char_type
|
CharT
|
string_type
|
std::basic_string<CharT> |
[编辑] 成员函数
(构造函数) |
构造一个新的 numpunct_byname facet(公共成员函数) |
(析构函数) |
销毁一个 numpunct_byname facet(受保护的成员函数) |
std::numpunct_byname::numpunct_byname
explicit numpunct_byname( const char* name, std::size_t refs = 0 ); |
||
explicit numpunct_byname( const std::string& name, std::size_t refs = 0 ); |
(自 C++11 起) | |
为具有 name 的区域设置构造一个新的 std::numpunct_byname
facet。
refs 用于资源管理:如果 refs == 0,则当最后一个持有它的 std::locale 对象被销毁时,实现会销毁该 facet。 否则,该对象不会被销毁。
参数
name | - | 区域设置的名称 |
refs | - | 链接到 facet 的引用数 |
std::numpunct_byname::~numpunct_byname
protected: ~numpunct_byname(); |
||
销毁 facet。
继承自 std::numpunct
嵌套类型
类型 | 定义 |
char_type
|
CharT
|
string_type
|
std::basic_string<CharT> |
[编辑] 数据成员
成员 | 描述 |
std::locale::id id [静态] |
facet 的标识符 |
成员函数
调用 do_decimal_point ( std::numpunct<CharT> 的公共成员函数) | |
调用 do_thousands_sep ( std::numpunct<CharT> 的公共成员函数) | |
调用 do_grouping ( std::numpunct<CharT> 的公共成员函数) | |
调用 do_truename 或 do_falsename ( std::numpunct<CharT> 的公共成员函数) |
受保护的成员函数
[虚函数] |
提供用作小数点的字符 ( std::numpunct<CharT> 的虚保护成员函数) |
[虚函数] |
提供用作千位分隔符的字符 ( std::numpunct<CharT> 的虚保护成员函数) |
[虚函数] |
提供每对千位分隔符之间的位数 ( std::numpunct<CharT> 的虚保护成员函数) |
提供用作布尔值 true 和 false 名称的字符串 ( std::numpunct<CharT> 的虚保护成员函数) |
[编辑] 示例
此示例演示了如何在不更改区域设置其余部分的情况下应用另一种语言的数字标点规则。
运行此代码
#include <iostream> #include <locale> int main() { const double number = 1000.25; std::wcout << L"default locale: " << number << L'\n'; std::wcout.imbue(std::locale(std::wcout.getloc(), new std::numpunct_byname<wchar_t>("ru_RU.UTF8"))); std::wcout << L"default locale with russian numpunct: " << number << L'\n'; }
输出
default locale: 1000.25 default locale with russian numpunct: 1 000,25
[编辑] 参见
定义数字标点规则 (类模板) |