命名空间
变体
操作

std::numpunct_byname

来自 cppreference.com
< cpp‎ | locale
定义在头文件中 <locale>
template< class CharT >
class numpunct_byname : public std::numpunct<CharT>;

std::numpunct_byname 是一个 std::numpunct 面,它封装了在构造时指定的区域设置的数字标点符号首选项。

内容

[编辑] 专业化

标准库保证提供以下专业化

定义在头文件中 <locale>
std::numpunct_byname<char> 特定于区域设置的 std::numpunct 面,用于窄字符 I/O
std::numpunct_byname<wchar_t> 特定于区域设置的 std::numpunct 面,用于宽字符 I/O

[编辑] 成员类型

成员类型 定义
char_type CharT
string_type std::basic_string<CharT>

[编辑] 成员函数

(构造函数)
构造一个新的 numpunct_byname
(公共成员函数) [编辑]
(析构函数)
销毁一个 numpunct_byname
(受保护的成员函数) [编辑]

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 起)

为区域设置构造一个新的 std::numpunct_byname 面,该区域设置具有 name

refs 用于资源管理:如果 refs == 0,则当最后一个包含它的 std::locale 对象被销毁时,实现将销毁该面。否则,该对象不会被销毁。

参数

name - 区域设置的名称
refs - 链接到面的引用数量

std::numpunct_byname::~numpunct_byname

protected:
~numpunct_byname();

销毁该面。

std::numpunct 继承

成员类型

成员类型 定义
char_type CharT
string_type std::basic_string<CharT>

成员函数

调用 do_decimal_point
(std::numpunct<CharT> 的公共成员函数) [编辑]
调用 do_thousands_sep
(std::numpunct<CharT> 的公共成员函数) [编辑]
调用 do_grouping
(std::numpunct<CharT> 的公共成员函数) [编辑]
调用 do_truenamedo_falsename
(std::numpunct<CharT> 的公共成员函数) [编辑]

受保护的成员函数

提供用作小数点的字符
(std::numpunct<CharT> 的虚拟受保护成员函数) [编辑]
提供用作千位分隔符的字符
(std::numpunct<CharT> 的虚拟受保护成员函数) [编辑]
[虚拟]
提供每个千位分隔符对之间数字的数量
(std::numpunct<CharT> 的虚拟受保护成员函数) [编辑]
提供用作布尔值 truefalse 的名称的字符串
(std::numpunct<CharT> 的虚拟受保护成员函数) [编辑]

成员对象

static std::locale::id id
区域设置的 id
(公共成员对象)

[编辑] 示例

本示例演示了如何在不更改区域设置的其余部分的情况下应用另一种语言的数字标点符号规则。

#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

[编辑] 另请参阅

定义数字标点符号规则
(类模板) [编辑]