std::is_scoped_enum
Min standard notice:
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);
}