[英]Can I use a generic enum type as a parameter of a function?
我想將參數傳遞給 function,它是一個枚舉。 但是我創建了許多不同的枚舉,所以我希望 function 對所有枚舉都有用。 可能嗎? 我想做的是這樣的:
enum Enum a {one, two};
enum Enum b {red, white};
void useEnum (enum anyEnum){
//do something
}
您可以通過將 function 設為模板來接受您喜歡的任何類型:
enum Enum a {one, two};
enum Enum b {red, white};
template <typename EnumType>
void useEnum (EnumType anyEnum){
//do something
}
但是,我強烈懷疑寫一個處理數字的 function 和 colors 是個好主意。 在不知道更多上下文的情況下,我寧願 go 用於重載或更明確:
void useNumber(a number){}
void useColor(b color){}
PS:如果您為不同的枚舉使用一個 function,那么請注意,您基本上是 go 倒退了一步。 枚舉的主要目的是擁有類型安全的枚舉( enum class
增加了更多類型安全性),而在您的useEnum
內部,兩個枚舉的唯一共同點是它們具有基礎值0
和1
的元素,這就是您將成為的工作。 在這一點上,與使用原始0
和1
相比,使用枚舉沒有更多優勢。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.