c++11 标准模板(STL)(std::locale)(四)返回 locale 的名称

用以封装文化差异的多态刻面的集合


std::locale 类型对象是不可变平面的不可变索引集。 C++ 输入/输出库的每个流对象与一个 std::locale 对象关联,并用其平面分析及格式化所有数据。另外, locale 对象与每个 std::basic_regex 对象关联。 locale 对象亦可在标准容器和算法中用作进行字符串对照的谓词,而且能被直接访问,以获得或修改其所保有的平面。

C++ 程序中构造的每个 locale 至少保有下列标准平面,但程序可以定义额外特化,或全新的平面,并将它们添加到任何既存的 locale 对象。

返回 locale 的名称,或若它无名则为 "*"

std::locale::name

std::string name() const;

返回操作系统所知的 locale 名称,例如 "POSIX" 或 "en_US.UTF8" 或 "English_United States.1252" 。若该 locale 不是系统提供的本地环境,则返回字符串 "*" 。

返回值

locale 的名称,或若无名则为 "*" 。

调用示例

#include <iostream>
#include <locale>
#include <codecvt>struct myfacet : std::locale::facet
{myfacet(std::size_t refs = 0) : facet(refs) {}static std::locale::id id;
};//类 std::locale::id 提供本地环境片面的实现限定标识。
std::locale::id myfacet::id;int main()
{std::locale locale1(std::locale(), new std::ctype<char>);std::cout << "The default locale is " << std::locale().name() << std::endl;std::cout << "The user's locale is " << std::locale("").name() << std::endl;std::cout << "A nameless locale is " << locale1.name() << std::endl;return 0;
}

输出

The default locale is C
The user's locale is Chinese (Simplified)_China.936
A nameless locale is *

locale 对象之间的相等性比较

std::locale::operator==, operator!=

测试二个本地环境的相等性。若具名 locale 的名称相等则认为它们相等。若无名 locale 互为彼此的副本则认为它们相等。

参数

other-要比较的 std::locale 对象

返回值

1) 若 other 为 *this 的副本或拥有等同名称则为 true ,否则为 false 。

2) 若 other 为 *this 的副本或拥有等同名称则为 false ,否则为 true 。

调用示例

#include <iostream>
#include <locale>
#include <codecvt>struct myfacet : std::locale::facet
{myfacet(std::size_t refs = 0) : facet(refs) {}static std::locale::id id;
};//类 std::locale::id 提供本地环境片面的实现限定标识。
std::locale::id myfacet::id;int main()
{std::cout << std::boolalpha;std::locale locale1;  // locale1 是经典 "C" 本地环境的副本std::cout << "locale1.name():   " << locale1.name() << std::endl;std::locale locale2("Chinese (Simplified)_China.936"); // locale2 为本地环境std::cout << "locale2.name():   " << locale2.name() << std::endl;std::locale locale3(locale1, locale2, std::locale::ctype); // locale3 为 "C" ,除了 ctype 为 unicodestd::cout << "locale3.name():   " << locale3.name() << std::endl;std::locale locale4(locale1, new std::codecvt_utf8<wchar_t>); // locale4 为 "C" ,除了 codecvtstd::cout << "locale4.name():   " << locale4.name() << std::endl;std::cout << locale2.name() << " == " << locale3.name() << "    "<< (locale2.name() == locale3.name()) << std::endl;std::cout << locale2.name() << " != " << locale3.name() << "    "<< (locale2.name() != locale3.name()) << std::endl;std::cout << locale2.name() << " == " << locale1.name() << "    "<< (locale2.name() == locale1.name()) << std::endl;std::cout << locale2.name() << " != " << locale1.name() << "    "<< (locale2.name() != locale1.name()) << std::endl;return 0;
}

输出

locale1.name():   C
locale2.name():   Chinese (Simplified)_China.936
locale3.name():   Chinese (Simplified)_China.936
locale4.name():   *
Chinese (Simplified)_China.936 == Chinese (Simplified)_China.936    true
Chinese (Simplified)_China.936 != Chinese (Simplified)_China.936    false
Chinese (Simplified)_China.936 == C    false
Chinese (Simplified)_China.936 != C    true

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/743480.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

使用Julia及R语言生成正态分布的随机数字并写入CSV文件

在操作之前需要先下载Julia的Distributions包&#xff0c;这个包用于进行相关概率分布的函数调用。 在输入 ] 进入Julia包管理模式后输入&#xff1a; add Distributions 这里我使用我们自己实验室的实测数据 &#xff0c;平均值0.67&#xff0c;方差0.11&#xff0c;数据分…

聚氨酯封孔剂因为热爱

忙忙碌碌又一天,对每个顾客都用心服务,因为热爱,所以不辛苦,因为热爱,即使无数遍的重复也不会厌倦。 聚氨酯封孔材料的主要性能特点&#xff1a; 1、粘度低&#xff0c;易渗入微小裂隙&#xff1b; 2、粘合能力很强&#xff0c;具有持久强粘结性&#xff1b; 3、柔韧性.越&am…

HCIP —— BGP 路径属性 (上)

目录 BGP 路径属性 1.优选Preferred-Value属性值最大的路由 2.优选Local-preference 属性数值大的路由 3.本地始发的BGP路由优先于其他对等体处学习到的路由。 4..优选AS_PATH属性值最短的路由 BGP 路径属性 BGP的路由选路是存在优选规则的&#xff0c;下图为华为官网提供…

2 配置虚拟机

1.打开VM&#xff0c;主页的界面如下&#xff0c;点击"创建新的虚拟机" 2.选择“自定义&#xff08;高级&#xff09;”&#xff0c;然后点击下一步&#xff0c;如下图所示&#xff1a; 3.下图直接点击“下一步” 4.下图的界面上&#xff0c;注意&#xff0c;不要选择…

用python实现人生重开模拟器游戏

人生重开模拟器是一款非常有趣的游戏&#xff0c;它让玩家能够模拟人生的各种可能性和选择。在Python中实现这个游戏&#xff0c;我们可以采用文本界面的形式&#xff0c;并使用随机数来模拟人生的不同事件。 以下是一个简化版的人生重开模拟器的Python实现&#xff1a; pytho…

3.11笔记2

目前使用的格里高利历闰年的规则如下&#xff1a; 公元年分非4的倍数&#xff0c;为平年。公元年分为4的倍数但非100的倍数&#xff0c;为闰年。公元年分为100的倍数但非400的倍数&#xff0c;为平年。公元年分为400的倍数为闰年。 请用一个表达式 (不能添加括号) 判断某一年…

【STL】stack栈容器与list链表容器

1.栈stack 栈具有先进后出的特性&#xff0c;最先进入的数据压在最底下&#xff0c;最后出来 2.list链表容器 list链表容器是一种双向链表&#xff0c;两端都可插入与删除&#xff0c;是双向访问迭代器&#xff0c;与vertor随机访问迭代器有不同的区别 reverse&#xff08;&…

蓝桥杯-质因数问题

约数&#xff0c;又称因数&#xff1a;a % b 0,则b称为a的约数&#xff0c;包括1和a。 例如4的正约数有&#xff1a;1、2、4。6的正约数有&#xff1a;1、2、3、6。质因数&#xff1a; 质因数&#xff08;素因数或质因子&#xff09;在数论里是指能整除给定正整数&#xff08;…

基于SpringBoot+MYSQL+Vue的校园管理系统

目录 1、前言介绍 2、主要技术 3、系统流程分析 3.1、操作流程 3.2、添加信息流程 3.3、删除信息流程 4、系统设计 4.1 系统体系结构 4.2开发流程设计 4.3 数据库设计原则 4.4 数据表 5、运行截图(部分) 5.1管理员功能模块 5.2用户功能模块 5.3院校管理员功能模块…

SpringCloudGateway网关服务搭建

目录 创建项目 配置项目 配置路由 启动类配置 运行和测试

java-房屋信息网系统-209-(代码+说明)

转载地址: http://www.3q2008.com/soft/search.asp?keyword房屋信息网系统 本课题所确立的框架主要分为&#xff1a; 1、房屋信息发布。 发布房屋的信息包括新房信息、买卖房信息、二手房信息以及出租房屋的信息等。 2、房屋信息交流区。 提供一个给用户自由交流的一个空间。…

three.js 鼠标左右拖动改变玩家视角

这里主要用到了 一个方法 obj.getWorldDirection(); obj.getWorldDirection()表示的获取obj对象自身z轴正方向在世界坐标空间中的方向。 按下 W键前进运动&#xff1b; <template><div><el-container><el-main><div class"box-card-left…

bdd100k数据集格式转coco格式

最近在学习使用mmdetection&#xff0c;需要使用bdd100k数据集来训练网络&#xff0c;但是官网下载的数据集格式不是coco数据集&#xff0c;得自己转换数据集格式。 文章目录 一、bdd100k数据集下载二、bdd100k转coco脚本下载三、脚本使用 一、bdd100k数据集下载 数据集下载地…

UDP通讯测试

参考资料&#xff1a;UNIX网络编程 实验平台&#xff1a;PC为client&#xff0c;RaspberryPi为server 基本类型和接口函数&#xff0c;参考man手册 #include <sys/socket.h>struct sockaddr {sa_family_t sa_family; /* Address family */char sa_d…

Docker 笔记(五)--链接

这篇笔记记录了Docker 的Link。 官方文档&#xff1a; Legacy container links - Communication across links 目录 参考Legacy container linksConnect using network port mappingConnect with the linking systemThe importance of naming Communication across linksEnviro…

React Hooks 那些事儿

翻了波之前写的文章还有笔记&#xff0c;发现关于前端的文章并不多&#xff08;好歹也划水做过点前端开发&#xff09;。巧了&#xff0c;最近没什么好话题可写&#xff0c;做下 React Hooks 学习笔记吧。 Effect Hook 不得不说 Hook 的出现降低了我们在 React 中处理副作用&…

LDK加密狗的多种功能特点

LDK加密狗是一种在软件保护领域广泛应用的硬件加密设备&#xff0c;它为软件提供了强有力的版权保护&#xff0c;确保软件开发商的权益得到充分保障。本文将从LDK加密狗的工作原理、功能特点、应用场景以及未来发展等方面进行详细阐述。 LDK加密狗的工作原理基于硬件加密技术。…

深入理解Python中的面向对象编程(OOP)【第129篇—Scikit-learn的入门】

深入理解Python中的面向对象编程&#xff08;OOP&#xff09; 在Python编程领域中&#xff0c;面向对象编程&#xff08;Object-Oriented Programming&#xff0c;简称OOP&#xff09;是一种强大而灵活的编程范式&#xff0c;它允许开发者以对象为中心组织代码&#xff0c;使得…

为什么选择VR全景进行企业宣传,如何将VR全景运用在企业展示

引言&#xff1a; 随着科技的不断发展&#xff0c;VR全景技术逐渐成为企业宣传的热门选择。那么&#xff0c;为什么越来越多的企业选择使用VR全景技术进行宣传呢&#xff1f; 一&#xff0e;为什么选择VR全景技术进行企业宣传 1. 提升用户体验 VR全景技术可以为用户营造身临…

STM32学习和实践笔记(2): STM32的学习方法

STM32学习方法如下&#xff0c;其余每一个嵌入式芯片的学习流程都是这样的&#xff01; (1&#xff09;基本外设: -GPIO输入输出&#xff0c;外部中断&#xff0c;定时器&#xff0c;串口。-理解并能使用这四个外设&#xff0c;基本就入门了一款MCU。 (2&#xff09;基本外设接…