最終更新日時: 2026年03月26日 13時46分13秒 (JST)
Raclamusi が更新

履歴 編集

class
<text_encoding>

# std::text_encoding::aliases_view(C++26)

    struct text_encoding::aliases_view : ranges::view_interface<text_encoding::aliases_view> {
      constexpr implementation-defined begin() const;
      constexpr implementation-defined end() const;
    };

## 概要

`aliases_view`は、エンコーディングのエイリアス（別名）一覧を提供するビュークラスである。

このクラスは以下のコンセプトをモデル化する：

- `copyable`
- `ranges::view`
- `ranges::random_access_range`
- `ranges::borrowed_range`

`ranges::range_value_t<text_encoding::aliases_view>`および`ranges::range_reference_t<text_encoding::aliases_view>`はともに`const char*`を表す。

## 例

    #include <text_encoding>
    #include <print>
    #include <ranges>

    int main() {
      std::text_encoding enc{std::text_encoding::id::ShiftJIS};
      auto aliases = enc.aliases();

      // プライマリ名
      if (aliases.begin() != aliases.end()) {
        std::println("Primary name: {}", aliases.front());
      }

      // すべてのエイリアスを表示
      std::println("All aliases:");
      for (const char* alias : aliases) {
        std::println("  {}", alias);
      }

      // random_access_rangeなのでサイズも取得可能
      std::println("Number of aliases: {}", std::ranges::distance(aliases));
    }

### 出力例

    Primary name: Shift_JIS
    All aliases:
      Shift_JIS
      MS_Kanji
      csShiftJIS
    Number of aliases: 3

## バージョン

### 言語

- C++26

### 処理系

- Clang: ??
- GCC: 15 ✅
- Visual C++: ??

## 参照

- P1885R12 Naming Text Encodings to Demystify Them