int変数値で列挙型クラスバリアントを取得できますか?今、私はとても列挙型のクラスを持っています:
enum class Action: unsigned int {
REQUEST,
RETURN,
ISSUANCE
};
そして、データベース値からこの値を取得する必要があります(データベースはunsigned intを返します)。それを最適化する方法は?今、私は各バリアントにスイッチを使用していますが、それは愚かです。説明してください!
任意の列挙型クラスをその基になる型(C ++ 14)に変換できるはずのジェネリック変換関数を作成することもできます。
template<typename E>
constexpr auto toUnderlyingType(E e)
{
return static_cast<typename std::underlying_type<E>::type>(e);
}
C ++ 11の場合
template<typename E>
constexpr auto toUnderlyingType(E e) -> typename td::underlying_type<E>::type
{
return static_cast<typename std::underlying_type<E>::type>(e);
}
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加