std::codecvt<InternT,ExternT,StateT>::always_noconv, do_always_noconv
来自cppreference.com
| 在标头 <locale> 定义
|
||
| (1) | ||
| (C++11 前) | ||
| |
(C++11 起) | |
| (2) | ||
| (C++11 前) | ||
| |
(C++11 起) | |
1) 公开成员函数,调用最终派生类的成员函数
do_always_noconv。2) 若 do_in() 和 do_out() 对于所有合法输入都返回
std::codecvt_base::noconv 则返回 true。返回值
若此转换刻面不进行转换则为 true,否则为 false。
不转换特化 std::codecvt<char, char, std::mbstate_t> 返回 true。
注解
此函数可用于例如 std::basic_filebuf::underflow 和 std::basic_filebuf::overflow 的实现,以在已知 std::basic_filebuf 中感染的本地环境不进行任何转换的情况下,使用批量字符复制取代调用 std::codecvt::in 或 std::codecvt::out。
示例
运行此代码
#include <iostream>
#include <locale>
int main()
{
std::cout << "无转换的 char<->char codecvt::always_noconv() 返回 "
<< std::boolalpha
<< std::use_facet<std::codecvt<char, char, std::mbstate_t>>(
std::locale()
).always_noconv() << '\n'
<< "而 wchar_t<->char codecvt::always_noconv() 返回 "
<< std::use_facet<std::codecvt<wchar_t, char, std::mbstate_t>>(
std::locale()
).always_noconv() << '\n';
}
输出:
无转换的 char<->char codecvt::always_noconv() 返回 true
而 wchar_t<->char codecvt::always_noconv() 返回 false