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