我目前正在將我的代碼從舊式枚舉遷移到枚舉類。C++ 11:什麼是從舊式枚舉遷移到枚舉類的正確方法?
強打字很好,但我碰到了代碼中的一處,我需要調用ncurses的init_pair()函數,它將short int
作爲其第一個參數,但我已將其轉換爲開發人員的enum類友好的閱讀。
使編譯器高興,看來我需要在第一個參數使用static_cast<short int>()
。
是否有一個更簡潔的方法,或者如果我必須使用的static_cast,你怎麼建議我使用它嗎?
接受的答案:多德的回答是好。在轉換之前,我已經遍佈代表舊式枚舉的地方。在切換之後,我在其餘的代碼中都有一個帶有類型安全枚舉的髒轉換。骯髒是孤立的一個點,代碼更安全,並且它更容易閱讀。這是一個顯着的進步。
好主意 - 至少髒物被隔離到一個地方 - 我將包裝外部調用 – kfmfe04
作爲一個說明,'短(對)'和'(短)pair'會工作得很好,如果你只是想避免醜陋;另一方面,與C風格和函數風格的演員不同,static_cast確實具有易於搜索的優勢! – celticminstrel