Если у меня есть такие определения, как:
typedef map<string, Foo> Foo_map_1
typedef map<string, Foo_map_1> Foo_map_2
typedef map<string, Foo_map_2> Foo_map_3
typedef map<string, Foo_map_3> Foo_map_4
typedef map<string, Foo_map_4> Foo_map_5
В любом случае я могу обобщить это, чтобы я мог, например,
Foo_map<10>
и иметь 10-кратную вложенную карту. Мне не нужно что-то вроде boost::recursive_wrapper
, потому что количество уровней всегда постоянное.