是否值得只包含type_traits以获取枚举的基础类型

Is it worth including type_traits only to get the underlying type of an enum?

本文关键字:枚举 获取 类型 traits 值得 包含 type 是否      更新时间:2023-10-16

我想知道仅仅为了获取枚举的底层类型而包含type_traits标头是否真的值得。我正在创建一个 Flags 类,我希望它尽可能灵活,所以我使用 std::underlying_type<T>::type 来获取类型。例如,我可以使用int但是如果用户想要使用超过 32 个标志怎么办?所以我的问题是,当经常使用时,它会大大减慢编译时间吗?

如果你需要 std::underlying_type 那么你就需要它。编写自己的代码或破坏代码是没有意义的。如果要最小化编译时间,请在标头中向前声明模板类,并仅在 .cxx 文件中使用 type_traits.cxx,这样您就不必继承不同文件中不需要的标头。