std::has_facet
提供: cppreference.com
<tbody>
</tbody>
<tbody class="t-dcl-rev ">
</tbody><tbody>
</tbody>
| ヘッダ <locale> で定義
|
||
template< class Facet > bool has_facet( const locale& loc ) throw(); |
(C++11未満) | |
template< class Facet > bool has_facet( const locale& loc ) noexcept; |
(C++11以上) | |
ロケール loc がファセット Facet を実装しているかどうか調べます。
引数
| loc | - | 問い合わせるロケールオブジェクト |
戻り値
ファセット Facet がロケール loc に導入されていれば true、そうでなければ false を返します。
例
Run this code
#include <iostream>
#include <locale>
// 最小限のカスタムファセット。
struct myfacet : public std::locale::facet {
static std::locale::id id;
};
std::locale::id myfacet::id;
int main()
{
// loc は "C" ロケールに myfacet を追加したものです。
std::locale loc(std::locale::classic(), new myfacet);
std::cout << std::boolalpha
<< "Can loc classify chars? "
<< std::has_facet<std::ctype<char>>(loc) << '\n'
<< "Can loc classify char32_t? "
<< std::has_facet<std::ctype<char32_t>>(loc) << '\n'
<< "Does loc implement myfacet? "
<< std::has_facet<myfacet>(loc) << '\n';
}
出力:
Can loc classify chars? true
Can loc classify char32_t? false
Does loc implement myfacet? true
関連項目
| 文化の違いをカプセル化する多相的なファセットの集合 (クラス) | |
| ロケールからファセットを取得します (関数テンプレート) |