5

型がその型の 1 つの値にマップされる、ある種のコンテナーを保持したいと考えています。したがって、本質的に私が欲しいのは、std::map<std::typeindex, T>T がインデックスの型に依存する場所です。std::map型が固定されているため、これを行う良い方法のようには見えません。これを行うために使用できる最も簡単なソリューションは何ですか?

4

2 に答える 2

4

のようなタイプが消去されたコンテナにマップする場合boost::any、それが何であるかがわかっていれば、少なくともタイプを復元できます。

std::map<std::typeindex, boost::any> m;

m[typeid(Foo)] = Foo(1, true, 'x');

Foo & x = boost::any_cast<Foo&>(m[typeid(Foo)]);
于 2013-10-06T19:23:54.590 に答える