std::codecvt<InternT,ExternT,State>::always_noconv, do_always_noconv
提供: cppreference.com
<tbody>
</tbody>
<tbody class="t-dcl-rev t-dcl-rev-num ">
</tbody><tbody>
</tbody>
<tbody class="t-dcl-rev t-dcl-rev-num ">
</tbody><tbody>
</tbody>
| ヘッダ <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) public メンバ関数。 最も派生したクラスのメンバ関数
do_always_noconv を呼びます。戻り値
この変換ファセットが変換を行わない場合は 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 を呼ぶ代わりにバルク文字コピーを使用するために、使用できます。
例
Run this code
#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