std::is_scoped_enum

Header: <type_traits>

std::is_scoped_enum is a UnaryTypeTrait.

# Declarations

template< class T >
struct is_scoped_enum;

(since C++23)

# Notes

Feature-test macro Value Std Feature __cpp_lib_is_scoped_enum 202011L (C++23) std::is_scoped_enum

# Example

#include <type_traits>
 
class A {};
 
enum E {};
 
enum struct Es { oz };
 
enum class Ec : int {};
 
int main()
{
    static_assert(std::is_scoped_enum_v<A> == false);
    static_assert(std::is_scoped_enum_v<E> == false);
    static_assert(std::is_scoped_enum_v<Es> == true);
    static_assert(std::is_scoped_enum_v<Ec> == true);
    static_assert(std::is_scoped_enum_v<int> == false);
}

# See also