title: C++ STL map typedef errors
body: <p>I'm having a really nasty problem with some code that I've written.  I found someone else that had the same problem on stackoverflow and I tried the solutions but none worked for me.</p>
  
  <p>I typedef several common STL types that I'm using and none of the others have any problem except when I try to typedef a map.
  I get a "some_file.h:83: error: expected initializer before '&lt;' token" error when including my header in a test program.</p>
  
  <p>Here's the important part of the header(some_file.h):</p>
  
  <pre><code>#ifndef SOME_FILE_H
  #define SOME_FILE_H
  // some syntax-correct enums+class prototypes
  typedef std::string str;
  typedef std::vector&lt;Column&gt; col_vec;
  typedef col_vec::iterator col_vec_i;
  typedef std::vector&lt;Row&gt; row_vec;
  typedef row_vec::iterator row_vec_i;
  typedef std::vector&lt;str&gt; str_vec;
  typedef str_vec::iterator str_vec_i;
  typedef std::vector&lt;Object&gt; obj_vec;
  typedef obj_vec::iterator obj_vec_i;
  typedef std::map&lt;Column, Object&gt; col_obj_map; // error occurs on this line
  typedef std::pair&lt;Column, Object&gt; col_obj_pair;
  </code></pre>
  
  <p>The includes in some_file.cpp are:</p>
  
  <pre><code>#include &lt;utility&gt;
  #include &lt;map&gt;
  #include &lt;vector&gt;
  #include &lt;iostream&gt;
  #include &lt;string&gt;
  #include &lt;stdio.h&gt;
  #include &lt;cc++/file.h&gt;
  #include "some_file.h"
  </code></pre>
  
  <p>The test file simply includes string, vector, and my file in that order.  It has a main method that just does a hello world sort of thing.</p>
  
  <p>The funny thing is that I quickly threw together a templated class to see where the problem was (replacing the "<code>std::map&lt;Column...</code>" with "<code>hello&lt;Column...</code>") and it worked without a problem.</p>
  
  <p>I've already created the operator overload required by the map if you're using a class without a '<code>&lt;</code>' operator.</p>