std::numpunct<CharT>::truename, do_truename, falsename, do_falsename

来自cppreference.com
< cpp‎ | locale‎ | numpunct
 
 
本地化库
本地环境与平面
本地环境
平面类别基类
ctype(字符类别)平面
numeric(数值)平面
collate(对照比较)平面
time(时间)平面
monetary(货币)平面
messages(消息)平面
字符分类与转换
字符分类
转换
编码转换平面
(C++11)    
C 本地环境
 
 
在标头 <locale> 定义
public:
string_type truename() const;
(1)
public:
string_type falsename() const;
(2)
protected:
virtual string_type do_truename() const;
(3)
protected:
virtual string_type do_falsename() const;
(4)
1-2) 公开成员函数,分别调用最终导出类的成员函数 do_truenamedo_falsename
3) 返回拥有表示布尔值 true 的字符串。
4) 返回拥有表示布尔值 false 的字符串。

返回值

1,3) 用作 true 表示的 string_type 类型对象。 std::numpunct 的标准特化返回 "true"L"true"
2,4) 用作 false 表示的 string_type 类型对象。 std::numpunct 的标准特化返回 "false"L"false"

示例

#include <iostream>
#include <locale>
#include <iomanip>
 
struct custom_tf : std::numpunct<char> {
    std::string do_truename()  const { return "t"; }
    std::string do_falsename() const { return "f"; }
};
 
int main()
{
    std::cout << std::boolalpha;
    std::cout << "default locale: " << true << true << false << false << '\n';
    std::cout.imbue(std::locale(std::cout.getloc(), new custom_tf));
    std::cout << "locale with modified numpunct: " 
              << true << true << false << false << '\n';
}

输出:

default locale: truetruefalsefalse
locale with modified numpunct: ttff