[解決済み] 非推奨のヘッダ <codecvt> の置き換え
2023-07-03 14:03:36
質問
前置きが長くなりましたが、私のタスクは UTF-8 XML ファイルを UTF-16 に変換することでした (もちろん、適切なヘッダー付きです)。そして、UTF-8 を UTF-16 に変換する通常の方法について検索したところ、以下のテンプレートを使用する必要があることがわかりました。
<codecvt>
.
しかし、今度はそれが 非推奨 が廃止された今、同じタスクを行うための新しい一般的な方法は何なのでしょうか?
(Boostを使うのは全然構わないのですが、それ以外はなるべく標準ライブラリに近い方がいいです)
どのように解決するのですか?
std::codecvt
からのテンプレート
<locale>
自体は非推奨ではありません。UTF-8 から UTF-16 へは、まだ
std::codecvt<char16_t, char, std::mbstate_t>
の特殊化があります。
しかし
std::wstring_convert
と
std::wbuffer_convert
は標準の変換ファセットとともに非推奨とされ、ファセットを使って 文字列を変換する簡単な方法はありません。
というわけで、Bolasがすでに回答しているように 自分で実装するか(あるいはいつものようにサードパーティライブラリを使うか)、非推奨のAPIを使い続けるかです。
関連
-
[解決済み】C-stringを使用すると警告が表示される。"ローカル変数に関連するスタックメモリのアドレスが返される"
-
[解決済み] 既に.objで定義されている-二重包含はない
-
[解決済み】Visual Studio 2013および2015でC++コンパイラーエラーC2280「削除された関数を参照しようとした」が発生する
-
[解決済み】ファイルから整数を読み込んで配列に格納する C++ 【クローズド
-
[解決済み】指定範囲内の乱数で配列を埋める(C++)
-
[解決済み】クラスのコンストラクタへの未定義参照、.cppファイルの修正も含む
-
[解決済み】C++ - ステートメントがオーバーロードされた関数のアドレスを解決できない。
-
[解決済み] GCCで「文字列定数から'char*'`への非推奨の変換」という警告を消すにはどうしたらいいですか?
-
[解決済み] なぜテンプレートはヘッダーファイルでしか実装できないのですか?
-
[解決済み] C++のヘッダーファイルで#ifndefと#defineが使われているのはなぜですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】C++ クラスヘッダが含まれているときに「不明な型」があるのはなぜですか?重複
-
[解決済み] エラーが発生する。ISO C++は型を持たない宣言を禁じています。
-
[解決済み】C++コンパイルタイムエラー:数値定数の前に期待される識別子
-
[解決済み】浮動小数点例外エラーが発生する: 8
-
[解決済み】「Expected '(' for function-style cast or type construction」エラーの意味とは?
-
[解決済み】標準ライブラリにstd::endlに相当するタブはあるか?
-
[解決済み] 数値定数の前にunqualified-idを付けて、数値を定義することを期待する。
-
[解決済み】Visual Studioのデバッガーエラー。プログラムを開始できません 指定されたファイルが見つかりません
-
[解決済み】演算子のオーバーロード C++; <<操作のパラメータが多すぎる
-
[解決済み】wstringをstringに変換する方法は?