Мне было интересно, если это действительно стоит включить type_traits
заголовок, чтобы получить базовый тип перечисления. Я создаю класс Flags, который я хочу быть максимально гибким, поэтому я использую std::underlying_type<T>::type
чтобы получить тип. Я мог бы использовать int
например, а что если пользователь захочет использовать более 32 флагов? Итак, мой вопрос, может ли он значительно замедлить время компиляции при частом использовании?
Если вам нужен std :: under_type, тогда он вам нужен. Нет смысла писать свой собственный или ставить под угрозу свой код. Если вы хотите минимизировать время компиляции, затем объявите класс шаблона в заголовке и примените type_traits.cxx только в файлах .cxx, так что вы не обязательно наследуете ненужные заголовки в разных файлах. ,
Других решений пока нет …