名前空間
変種

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 を呼びます。
2) すべての有効な入力に対して do_in() と {{lc|do_out()} がどちらも std::codecvt_base::noconv を返す場合は true を返します。

戻り値

この変換ファセットが変換を行わない場合は true、そうでなければ false

変換しない std::codecvt<char, char, std::mbstate_t> の特殊化は true を返します。

ノート

この関数は、例えば std::basic_filebuf::underflowstd::basic_filebuf::overflow の実装で std::basic_filebuf に設定されているロケールがいかなる変換も行わないことが判明している場合に std::codecvt::instd::codecvt::out を呼ぶ代わりにバルク文字コピーを使用するために、使用できます。

#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