各ノードが基本的に次のように見えるツリーがあります。
struct node
{
std::unordered_set<object*> objects;
std::map<std::type_index,node> children;
};
ツリーを反復処理して新しいタイプを追加するとき、チェックを行いたい:
std::is_base_of<base,derived>
ただし、派生型について私が持っている唯一の情報はtype_index/type_info*
.
とにかく引数type_info*
に変換できるものはありますか?template
そうでない場合、他にどのような選択肢がありますか? を呼び出すことができると思いますdecltype(*objects.begin())
が、それにはすべてのノードの各セットが空にならないようにする必要があります。