最終更新日時: 2025年07月12日 02時16分44秒 (JST)
Koichi Murase が更新

履歴 編集

class template
<type_traits>

# std::is_scoped_enum(C++23)

    namespace std {
      template <class T>
      struct is_scoped_enum;

      template <class T>
      inline constexpr bool is_scoped_enum_v
        = is_scoped_enum<T>::value;
    }

## 概要

型`T`がスコープ付きの列挙型か調べる。

## 要件

`is_scoped_enum`は、型`T`がスコープ付きの列挙型であるならば`true_type`から派生し、そうでなければ`false_type`から派生する。

## 例

    #include <type_traits>

    enum class E1 {};
    enum E2 {};

    int main() {
      static_assert(std::is_scoped_enum_v<E1>);

      static_assert(!std::is_scoped_enum_v<E2>);
      static_assert(!std::is_scoped_enum_v<int>);
    }

### 出力

## バージョン

### 言語

- C++23

### 処理系

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