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::basic_filebuf 中注入的 locale 不執行任何轉換時,使用批次字元複製,而不是呼叫 std::codecvt::in 或 std::codecvt::out。
[編輯] 示例
執行此程式碼
#include <iostream> #include <locale> 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