myoukakuのブログ

C++でゲームエンジンを作っていきます。

static_mapのヘルパー関数、make_static_mapを書いた(3)

static_mapのヘルパー関数、make_static_mapを書いた(2) - myoukakuのブログ の続き

テンプレートパラメータパックをtupleに受けるのでなく、直接要素を取り出せば行けるかと思い、 VSでも動くパラメーターパックヘルパーを作った - TXT.TXTを参考にやってみました。

結果的に、正しく動作することはしましたが、やはり要素数が多くなると*1Internal Compiler Error(fatal error C1060: ヒープの領域を使い果たしました。)となってしまいました。

少なくとも要素数は200以上必要だったのと、エラーにならなくてもコンパイル時間が長くなってしまったので、この方法は断念し、最初に書いたstd::pairを渡す方法で行くことにしました。

(common_typeやtuple_elementを使うようにしたりと少し修正してあります) bksge/make_static_map.hpp at develop · myoukaku/bksge · GitHub

色々と回り道をした結果、最初に戻ってしまった感じですが、そのなかでVariadic Templatesに関連して、index_tuple技法など様々な知見を得ることができました。 今後に活かしていきたいです。

*1:120を超えたあたり