」工欲善其事,必先利其器。「—孔子《論語.錄靈公》
首頁 > 程式設計 > 如何在 C++ 中將強型別枚舉明確轉換為整數?

如何在 C++ 中將強型別枚舉明確轉換為整數?

發佈於2024-11-20
瀏覽:920

How to Explicitly Convert Strongly Typed Enums to Integers in C  ?

自動將強型別枚舉轉換為整數型別

在 C 中,強型別枚舉比傳統枚舉具有更高的型別安全性。然而,與傳統枚舉不同,強型別枚舉不能隱式轉換為整數型別。

要將強型別枚舉值E 轉換為整數型,需要明確強制轉換,如:

int i = static_cast(b::B2);

但是,如果枚舉的底層類型未知,則下列範本函數可以使用:

template 
constexpr typename std::underlying_type::type to_underlying(E e) noexcept {
    return static_cast::type>(e);
}

現在,無需明確指定基礎型別即可執行轉換:

std::cout 

需要注意的是,這種轉換僅適用於強型別枚舉的值。如果向 to_underlying() 提供傳統的枚舉值,則會引發錯誤。

最新教學 更多>

免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。

Copyright© 2022 湘ICP备2022001581号-3