首頁 >後端開發 >C++ >如何在現代 C 中將枚舉轉換為字串,反之亦然?

如何在現代 C 中將枚舉轉換為字串,反之亦然?

DDD
DDD原創
2024-12-22 03:03:14881瀏覽

How to Convert Enums to Strings and Vice Versa in Modern C  ?

在現代C 中將枚舉轉換為字串

要將枚舉轉換為現代C 中的字串,請利用Magic Enum 僅標頭庫進行靜態反射枚舉。

#include <magic_enum.hpp>

enum Color { RED = 2, BLUE = 4, GREEN = 8 };

// Convert enum value to string
auto color_name = magic_enum::enum_name(Color::RED);

// Convert string to enum value
std::string color_name = "GREEN";
auto color = magic_enum::enum_cast<Color>(color_name);

注意事項

  • Magic Enum 需要特定於編譯器的 hack 並在預先定義的數字範圍內運行,通常為 [-128, 128]。
  • 透過修改MAGIC_ENUM_RANGE_MIN和自訂所有枚舉類型的範圍MAGIC_ENUM_RANGE_MAX。
  • 使用 enum_range 專化為特定枚舉型別指定自訂範圍。

以上是如何在現代 C 中將枚舉轉換為字串,反之亦然?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn