std::numpunct_byname

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

std::numpunct_bynamestd::numpunct 平面,它封装在它构造时指定的本地环境的数值标点偏好。

特化

标准库保证提供以下特化:

在标头 <locale> 定义
std::numpunct_byname<char> 窄字符输入/输出的本地环境限定 std::numpunct 平面
std::numpunct_byname<wchar_t> 宽字符输入/输出的本地环境限定 std::numpunct 平面

成员类型

成员类型 定义
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 起)

为名为 name 的本地环境构造新的 std::numpunct_byname 平面。

refs 用于资源管理:在销毁最后一个保有平面的 std::locale 对象时,如果 refs == 0,那么实现会销毁平面对象。否则不销毁对象。

参数

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
locale 的 id
(公开成员对象)

示例

此示例演示如何应用另一语言的数值标点规则而不更改本地环境的剩余部分。

#include <iostream>
#include <locale>
 
int main()
{
    const double number = 1000.25;
    std::wcout << L"默认本地环境:" << number << L'\n';
    std::wcout.imbue(std::locale(std::wcout.getloc(),
                                 new std::numpunct_byname<wchar_t>("ru_RU.UTF8")));
    std::wcout << L"带有俄语数值标点的本地环境:" << number << L'\n';
}

输出:

默认本地环境:1000.25
带有俄语数值标点的本地环境:1 000,25

参阅

定义数值标点规则
(类模板)