簡體   English   中英

我可以使用通用枚舉類型作為 function 的參數嗎?

[英]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內部,兩個枚舉的唯一共同點是它們具有基礎值01的元素,這就是您將成為的工作。 在這一點上,與使用原始01相比,使用枚舉沒有更多優勢。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM