static_mapのヘルパー関数、make_static_mapを書いた(0)
static_mapが便利なので重宝しています。
スタックを使用するmapを作りました - Faith and Brave - C++で遊ぼう
これがあれば、エラーコードとメッセージの対応など、かなりの部分でswitch-caseや危険なテーブル引きを撲滅することができます。
しかし不満点もあって、
- 要素の型
- 要素の数
を明示的に書かなければならないのは地味にめんどくさいです。特に要素数はコロコロ変わる可能性がありますが、そのたびに注意して編集しなければいけません。
そこでstatic_mapを生成するヘルパー関数、make_static_mapを書いてみました。最終的なゴールは
enum class Color { Red, Green, Blue, }; static const auto map = make_static_map( Color::Red, "Red", Color::Green, "Green", Color::Blue, "Blue" ); std::cout << map[Color::Red] << std::endl; // "Red"
と書けるようにすることです。
続く。