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++: ??