背景:
外部ライブラリ ヘッダーで列挙型が定義されており、 enum 値を人間が読める文字列に変換したいと考えています。ブルート フォース ソリューションには手動で定義された関数が含まれますが、エレガントなソリューションはテンプレートを使用して求められます。
std::map の使用:
簡単なアプローチは、 std::map
map_init クラスの構文糖:
構文を簡素化するために、map_init クラスを作成して値の割り当ての連鎖を有効にすることができます。
このクラス テンプレートは、マップへの参照を保存し、キーと値のペアを追加するためのoperator() 関数を提供するmap_init_helperオブジェクト。
使用例:
このアプローチを使用するには、次のようにします。 can:
代替案アプローチ:
列挙名自体を文字列として使用する必要がある場合は、[この投稿](関連する投稿へのリンク) を参照してください。
概要:
このソリューションは、C 列挙型を文字列にマッピングする簡単かつ効率的な方法を提供し、ブルート フォース メソッドに代わるより洗練された方法を提供します。 map_init クラスは構文をさらに簡素化し、列挙値のマップとその文字列表現の操作を容易にします。
以上がテンプレートを使用して C 列挙型を文字列に簡単にマッピングするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。