title: C++: Nested map
body: <p>Here is the definition:  </p>
  
  <p><code>struct nmap;
  struct nmap: map&lt;string, boost::variant&lt;string, nmap*&gt;&gt;{};</code></p>
  
  <p>The last line below doesn't work:  </p>
  
  <p><code>nmap my_map;
  my_map["a"] = "b";
  my_map["c"] =  new nmap;
  my_map["c"]["d"] = "e";</code></p>
  
  <p>What do I need to add, in order for this to work?</p>