Это та же проблема, что и при выполнении, например,
struct Node
{
Node child; // An instance of the full structure
};
Вы не можете использовать структуру (или класс) до того, как она будет полностью определена, а именно при закрытии }
.
Однако вы можете определить указатели на структуру, потому что в этом случае компилятору не нужно полное определение структуры, нужно знать только имя структуры:
struct Node
{
Node* child; // Pointer to the structure
};
Итак, чтобы решить вашу проблема, вам нужна карта указателей :
std::unordered_map<int, Node*> children;