title: Unknown type name error when inserting into unordered_map
body: <p>I have a single file called <em>main.cpp</em> where I am trying to declare an <code>unordered_map</code> as shown below.</p>
  <pre><code>std::unordered_map&lt;std::string, std::set&lt;int&gt;&gt; firstSets;
  </code></pre>
  <p>I then try to insert a new (key, value) pair into the map as follows.</p>
  <pre><code>std::string decl = &quot;decl&quot;;
  std::set&lt;int&gt; declFirstSet = {VOID_TOK, INT_TOK, FLOAT_TOK, BOOL_TOK};
  firstSets[decl] = declFirstSet;
  </code></pre>
  <p>When I do this I get the following compiler error.</p>
  <blockquote>
  <p>C++ requires a type specifier for all declarations</p>
  <p>firstSets[decl] = declFirstSet;</p>
  <p>size of array has non-integer type 'std::string' (aka 'basic_string')</p>
  <p>firstSets[decl] = declFirstSet;</p>
  </blockquote>
  <p>So it seems to think I am declaring 'firstSets' when I am actually tring to insert into it. And it seems to treat 'firstSets' as an array instead of an <code>unordered_map</code>. How do I fix this?</p>