列挙型変換に静的リフレクションを使用した C 17 の利用
このレスポンスでは、C 17 開発者に静的リフレクションを提供するヘッダーのみのライブラリである magic_enum が紹介されています。列挙型のリフレクション機能。以前の C バージョンまたは Boost の使用に焦点を当てた以前の回答とは異なり、magic_enum は最新の C 17 機能を使用したエレガントなソリューションを提供します。文字列への enum は簡単です。ライブラリをインクルードして enum_name 関数を呼び出し、引数として enum 値を渡します。同様に、文字列を enum に変換し直すには、enum_cast 関数を使用します。
magic_enum の利点
(実行時ではなく) コンパイル時に提供されます。ゼロベースの範囲外の値や負の値を含む列挙型をサポートします。
断片化された列挙型値のサポートを提供します。その機能を有効にするためにコンパイラ固有のハックに依存しているため、特定のバージョンの互換性が制限されます。 Clang、MSVC、および GCC。
列挙値は事前定義された範囲内に収まる必要があり、マクロを使用してカスタマイズ可能です。以上がC 17 の magic_enum はどのようにして Enum 文字列変換を簡素化できるのでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。