std::codecvt<InternT,ExternT,StateT>::always_noconv, do_always_noconv
来自cppreference.com
在标头 <locale> 定义
|
||
(1) | ||
public: bool always_noconv() const throw(); |
(C++11 前) | |
public: bool always_noconv() const noexcept; |
(C++11 起) | |
(2) | ||
protected: virtual bool do_always_noconv() const throw(); |
(C++11 前) | |
protected: virtual bool do_always_noconv() const noexcept; |
(C++11 起) | |
1) 公开成员函数,调用最终导出类的成员函数
do_always_noconv
。返回值
若此转换平面不进行转换则为 true ,否则为 false 。
不转换特化 std::codecvt<char, char, std::mbstate_t> 返回 true 。
注意
此函数可用于例如 std::basic_filebuf::underflow 和 std::basic_filebuf::overflow 的实现,以使用大量元素复制取代调用 std::codecvt::in 或 std::codecvt::out ,若已知 std::basic_filebuf 中感染的本地环境不进行任何转换。
示例
运行此代码
#include <locale> #include <iostream> int main() { std::cout << "The non-converting char<->char codecvt::always_noconv() returns " << std::boolalpha << std::use_facet<std::codecvt<char, char, std::mbstate_t>>( std::locale() ).always_noconv() << "\n" << "while wchar_t<->char codecvt::always_noconv() returns " << std::use_facet<std::codecvt<wchar_t, char, std::mbstate_t>>( std::locale() ).always_noconv() << "\n"; }
输出:
The non-converting char<->char codecvt::always_noconv() returns true while wchar_t<->char codecvt::always_noconv() returns false