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

履歴 編集

function
<text_encoding>

std::text_encoding::name(C++26)

constexpr const char* name() const noexcept;

概要

エンコーディング名を取得する。

戻り値

name_[0] != '\0'の場合はname_を返す。そうでなければ空文字列へのポインタを返す。

name()が空文字列でない場合、返される値はヌル終端バイト文字列(NTBS)である。

  • string_viewコンストラクタで構築された場合、コンストラクタに渡された名前がそのまま返される
  • idから構築された場合、実装定義のエイリアス一覧に含まれる名前が返される
  • literal()environment()から返された場合、実装定義の名前が返される

備考

  • P2862R1の適用により、この関数はnullptrを返さない。id::unknownid::otherのMIBを持つtext_encodingオブジェクトに対しては空文字列を返す。
    • これにより、std::cout << te.name()std::format()への直接渡し、std::string_viewの構築が常に安全に行える。

例外

投げない。

#include <text_encoding>
#include <print>
#include <string_view>

int main() {
  // リテラルエンコーディングの名前
  std::println("Literal: {}", std::text_encoding::literal().name());

  // 環境エンコーディングの名前
  std::println("Environment: {}", std::text_encoding::environment().name());

  // ユーザー構築した場合、渡した名前がそのまま返される
  std::text_encoding enc{"utf-8"};
  std::println("User: {}", enc.name());

  // unknownの場合は空文字列
  std::text_encoding unknown;
  std::println("Unknown: [{}]", unknown.name());
  std::println("Is empty: {}", std::string_view(unknown.name()).empty());
}

出力例

Literal: UTF-8
Environment: UTF-8
User: utf-8
Unknown: []
Is empty: 1

バージョン

言語

  • C++26

処理系

参照