我想知道是否真的值得包含type_traits
頭文件來獲取枚舉的基礎類型。我創建了一個Flags類,我希望儘可能靈活,所以我使用std::underlying_type<T>::type
來獲取類型。例如,我可以使用int
,但如果用戶想要使用多於32個標誌,該怎麼辦?所以我的問題是,在頻繁使用時,是否可以顯着減慢編譯時間?值得僅包含type_traits來獲取枚舉的基礎類型嗎?
0
A
回答
1
如果你需要std :: underlying_type,那麼你需要它。沒有意義寫你自己的或損害你的代碼。如果你想最小化編譯時間,然後在頭文件中前向聲明模板類,並僅在.cxx文件中實用type_traits.cxx,這樣你就不必在不同的文件中繼承不需要的頭文件。
+0
這個問題是我沒有任何cpp文件,只有頭文件(它是一個模板類),因此它將包含在系統中的幾乎所有文件中。 – HemoGoblin
+0
您不能對類型特徵使用前向聲明技巧。類型'std :: underlying_type
相關問題
- 1. 枚舉類型,其值包含空格
- 2. 自定義枚舉基礎類型
- 3. 轉換成枚舉基礎類型
- 4. 非整數基礎類型,枚舉
- 5. 獲取包含一個枚舉值
- 6. 獲取基於枚舉值
- 7. 從值獲取枚舉類型
- 8. C#獲取基於枚舉值的公共變量的類型
- 9. C#:基於不同枚舉類型的枚舉值返回枚舉值
- 10. 枚舉類型佈局是否與其基礎類型兼容?
- 11. IValueConverter去除枚舉的基礎值(int)
- 12. 比較包含相同枚舉類型
- 13. 從泛型類型獲取枚舉類?
- 14. 獲得枚舉值
- 15. 使用基礎枚舉作爲依賴枚舉的默認值
- 16. 如何知道類枚舉的基礎類型?
- 17. 使範圍枚舉類似於基礎類型
- 18. C++中的C++枚舉的基礎類型03
- 19. 更改基礎類型的枚舉的長
- 20. Java枚舉:兩個枚舉類型,每個枚舉類型包含彼此的引用?
- 21. Doctrine枚舉類型不允許添加非枚舉值嗎?
- 22. 獲得來自枚舉
- 23. 枚舉值獲取?
- 24. 獲取枚舉值
- 25. 獲取枚舉值
- 26. 基於附加值獲取枚舉?
- 27. Perl有枚舉類型嗎?
- 28. 如何使用Yard來記錄可枚舉類型及其包含的類型?
- 29. 獲取枚舉併發送枚舉值
- 30. 如何獲得基礎,以枚舉的rawValue它的屬性值 - 斯威夫特
使用和不使用它幾次測量編譯。總的來說,它幾乎不會減慢速度。 – chris