最終更新日時: 2026年07月22日 16時08分23秒 (JST)
rotarymars が更新

履歴 編集

class
<expected>

# std::unexpect_t(C++23)

    namespace std {
      struct unexpect_t {
        explicit unexpect_t() = default;
      };

      inline constexpr unexpect_t unexpect{};
    }

## 概要

`unexpected_t`は、`expected`コンストラクタにおいて、エラー値型のコンストラクタ引数を受け取って構築するためのタグ型である。

`unexpected_t`型の定数`unexpect`が提供される。

## 例

    #include <cassert>
    #include <expected>
    #include <system_error>
    #include <cerrno>

    int main()
    {
      std::expected<int, std::error_code> x{std::unexpect, ETIMEDOUT, std::system_category()};
      assert(not x.has_value());
      assert(x.error().value() == ETIMEDOUT);
      assert(x.error().category() == std::system_category());
    }

### 出力

## バージョン

### 言語

- C++23

### 処理系

- Clang: 16.0 ✅
- GCC: 12.1 ✅
- ICC: ??
- Visual C++: ??

## 関連項目

- `expected`

## 参照

- P0323R12 std::expected