is_scoped_enum<T>
タイプ特性はありますか、または次のようなタイプ特性を書くことは可能ですか?
T
スコープ付き列挙であるis_scoped_enum<T>::value
場合、true
およびT
他のタイプの場合、is_scoped_enum<T>::value
false
is_scoped_enum<T>
タイプ特性はありますか、または次のようなタイプ特性を書くことは可能ですか?
T
スコープ付き列挙であるis_scoped_enum<T>::value
場合、true
およびT
他のタイプの場合、 is_scoped_enum<T>::value
falseそれが列挙型であり、基になる型に暗黙的に変換できないかどうかをテストすることでうまくいくと思います。
template <typename T, bool B = std::is_enum<T>::value>
struct is_scoped_enum : std::false_type {};
template <typename T>
struct is_scoped_enum<T, true>
: std::integral_constant<bool,
!std::is_convertible<T, typename std::underlying_type<T>::type>::value> {};