Предположим, у меня есть тип, который я назову NamedNestedMap
std::map<std::string, std::map<std::string, NamedNestedMap> >
В этом случае каждая секунда (значение) пары того же типа или типа, что и родительский объект. Что я не могу понять, так это как это объявить. Это позволит рекурсивному алгоритму пройти по «дереву» карт.
Тип Value совпадает с родительским типом, который в момент, когда мне нужно сослаться на него, не полностью объявлен.
Как вы объявляете что-то вроде этого вложенного ...
Я даже не могу напечатать первый, чтобы я мог включить его во второй, потому что он неполный
Рекурсия будет искать что-то на карте, когда она найдет это, рекурсивно оценивать значение этого объекта. Часть алгоритма кажется довольно простой, часть объявления здесь более тупая. Я не пытаюсь перебрать карту карт, просто используй map.find, рекурсируй и используй map.find снова.