gpt4 book ai didi

c++ - 是否可以确定一个类型是否是作用域枚举类型?

转载 作者:IT老高 更新时间:2023-10-28 22:35:05 24 4
gpt4 key购买 nike

是否有类型特征,或者是否可以编写类型特征is_scoped_enum<T>这样:

  • 如果 T是一个范围枚举,is_scoped_enum<T>::valuetrue
  • 如果 T是任何其他类型,is_scoped_enum<T>::value是假的

最佳答案

我认为测试它是否是一个枚举并且不能隐式转换为底层类型应该可以解决问题。

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> {};

关于c++ - 是否可以确定一个类型是否是作用域枚举类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10724783/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com