C ++: mapa aninhado

Aqui está a definição:

struct nmap; struct nmap: map<string, boost::variant<string, nmap*>>{};

A última linha abaixo não funciona:

nmap my_map; my_map["a"] = "b"; my_map["c"] = new nmap; my_map["c"]["d"] = "e";

O que preciso adicionar para que isso funcione?

questionAnswers(1)

yourAnswerToTheQuestion