constexpr const char* name() const noexcept;
概要
エンコーディング名を取得する。
戻り値
name_[0] != '\0'の場合はname_を返す。そうでなければ空文字列へのポインタを返す。
name()が空文字列でない場合、返される値はヌル終端バイト文字列(NTBS)である。
string_viewコンストラクタで構築された場合、コンストラクタに渡された名前がそのまま返されるidから構築された場合、実装定義のエイリアス一覧に含まれる名前が返されるliteral()やenvironment()から返された場合、実装定義の名前が返される
備考
- P2862R1の適用により、この関数は
nullptrを返さない。id::unknownやid::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
処理系
- Clang: ??
- GCC: 15 ✅
- Visual C++: ??