state_type state() const;
このクラスはC++17から非推奨となり、C++26で削除された。
概要
変換の状態を取得する。
戻り値
これによって返される状態は、初期状態か、部分的に変換した状態かのどちらかである。
全ての文字が変換された場合は、初期状態が設定される。
例外
state_type
型のコピーコンストラクタが例外を送出しない限り、この関数は例外を送出しない。
例
#include <iostream>
#include <string>
#include <locale>
#include <codecvt>
#include <cwchar>
int main()
{
// UTF-8とUTF-32の相互変換を行うコンバーター
std::wstring_convert<std::codecvt_utf8<char32_t>, char32_t> converter;
std::string input = u8"あいうえお";
std::u32string result = converter.from_bytes(input);
std::mbstate_t state = converter.state();
// 全ての文字が変換された
if (std::mbsinit(&state) != 0) {
std::cout << "converted all" << std::endl;
}
// 変換されなかった文字がある
else {
std::cout << "converted partial" << std::endl;
}
}
出力
converted all
バージョン
言語
- C++11
処理系
- Clang: 3.0 ✅, 3.1 ✅, 3.2 ✅, 3.3 ✅, 3.4 ✅
- GCC: 5.1 ✅
- ICC:
- Visual C++: 2010 ✅, 2012 ✅, 2013 ✅