最終更新日時: 2026年02月08日 18時00分28秒 (JST)
yoh が更新

履歴 編集

type-alias
<execution>

# std::execution::variant-or-empty(C++26)

    namespace std::execution {
      template<class... Ts>
      using variant-or-empty = see below;  // exposition only
    }

## 概要

`variant-or-empty`は、型パラメータパック`Ts`からdecay結果を要素型とする`variant`型を作成する説明専用のエイリアステンプレートである。

型`variant-or-empty<Ts...>`は下記の通り定義される。

- `sizeof...(Ts) > 0`ならば、説明用のパック`Us`を`decay_t<Ts>...`から重複削除したものとしたとき、`variant-or-empty<Ts...>`は`variant<Us...>`型となる。

- そうでなければ、`variant-or-empty<Ts...>`は下記の説明専用クラス型となる。

      namespace std::execution {
        struct empty-variant { // exposition only
          empty-variant() = delete;
        };
      }

## バージョン

### 言語

- C++26

## 関連項目

- `execution::value_types_of_t`
- `execution::error_types_of_t`

## 参照

- P2300R10 `std::execution`