title: map does not name a template type for custom struct
body: <p>I have a simple object:</p>
  
  <pre><code>struct TimeObject {
      private:
         UInt64 m_currentTime;
         bool m_isStarted;
  }
  </code></pre>
  
  <p>This object is utilized in a map in another struct:</p>
  
  <pre><code>std::map&lt;Utf8String, TimeObject&gt; m_myMap;   // *
  </code></pre>
  
  <p>and instantiated in the constructor of the struct:</p>
  
  <pre><code>m_myMap = new std::map&lt;Utf8String, TimeObject&gt;();
  </code></pre>
  
  <p>It seems to say that the definition (where the * is ) causes the following error:  <strong><em>Error: 'map' in namespace 'std' does not name a template type</em></strong></p>
  
  <p>The first part of the question is: Understanding the error.  When you understand that you can work to resolve it.  My first guess would be that the struct <em>TimeObject</em> is created in the same file, and its definition is not defined at the time this line is compiled so it throws an error.  This occurs even though the struct was not declared IN the other struct, but as follows:</p>
  
  <pre><code>struct TimeObject{}
  struct MyNewObject
  {
      private: std::map&lt;Utf8String,TimeObject&gt; m_myMap;
  }
  </code></pre>
  
  <p>So what is this particular error scream about?  Should i define TimeObject inside of the struct so it understands?</p>