首页 理论教育 刻面处理方法大道至简:C++STL精解

刻面处理方法大道至简:C++STL精解

时间:2023-10-25 理论教育 版权反馈
【摘要】:在给定的区域表示中存在指明的刻面,模板has_facet函数返回true值。例如,若判断德语区域表示是否支持ctype facet,可编写以下代码:每种类型的facet均定义了函数,程序可以调用函数处理表示所用数据。假定需要调用ctype类型刻面的toupper()函数,在德语区域表示规则把字符串转化成大写形式。模板函数has_facet的使用方法如下:参数Loc是现存facet的locale对象。说明模板函数是非常有用的,尤其在一个locale中,检查非强制的facet是否被列出。例12-5例12-5的执行结果为:

刻面处理方法大道至简:C++STL精解

由于locale对象的facet提供用于本地化软件的服务,因此需要一种访问和使用该服务的方法。提供重要支持的模板函数包括两个:has_facet和use_facet。在给定的区域表示中存在指明的刻面,模板has_facet函数返回true值。例如,若判断德语区域表示是否支持ctype facet,可编写以下代码:

每种类型的facet均定义了函数,程序可以调用函数处理表示所用数据。通常使用use_facet调用facet对象的成员函数。假定需要调用ctype类型刻面的toupper()函数,在德语区域表示规则把字符串转化成大写形式。例如,

此处的std::has_facet和std::use_facet的调用某些实际参数的使用方法,在此之前并未出现。

模板函数has_facet的使用方法如下:

参数Loc是现存facet的locale对象。如果locale类的对象具有被测试过的刻面,函数返回值为true;否则,将返回false。

说明(www.xing528.com)

模板函数是非常有用的,尤其在一个locale中,检查非强制的facet是否被列出。在模板函数use_facet()被调用之前,避免抛出异常。模板函数use_facet的使用方法:

参数_Loc是locale类型的常量,包含被引用的facet类型。函数返回值是参数_Loc的引用。函数使用说明:只要保留的任一版本locale存在,通过模板函数返回的刻面引用保留了有效性。如果没有这样的facet对象被列出在参数locale中,函数会抛出一个bad_cast类型的异常。

例12-5

例12-5的执行结果为:

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈