• Class / Function / Type

      std::
    • Header file

      <>
    • Other / All

    最終更新日時(UTC):
    が更新

    履歴 編集

    enum
    <codecvt>

    std::codecvt_mode

    namespace std {
      enum codecvt_mode {
        consume_header = 4,
        generate_header = 2,
        little_endian = 1
      };
    }
    

    概要

    文字コード変換の設定をするための列挙型。

    列挙値 説明
    consume_header 読み込み時に先頭のバイトオーダーマーク(BOM)を消費する
    generate_header 先頭にバイトオーダーマーク(BOM)を出力する
    little_endian リトルエンディアンで出力する(デフォルト動作はビッグエンディアン)

    この型は、以下のクラステンプレートにおいて、テンプレート仮引数として使用されている。

    非推奨・削除の詳細

    Unicodeの文字コード変換を行うこれらのクラスは、不正なコードポイントに対する安全なエラー処理の方法を提供していなかったため、セキュリティ上の欠陥があった。

    仕様もあいまいであったため、不正なコードポイントに対してどのように振る舞うかも不明であった。

    Unicode以外のShift_JISやBig5といった文字コードの利用が急激に減少している。標準ライブラリでの現代的なUnicodeの変換機能は非常に必要とされているが、<codecvt>の設計はお粗末なものだった。将来より良いものを作るために、これらの機能は非推奨・削除とする。

    標準ライブラリにUnicodeの文字コード変換をする代替機能はないため、他の専門特化した文字コード変換のライブラリを使用すること。

    バージョン

    言語

    • C++11

    処理系

    参照