title: Why can't I create a std::map with this struct as value
body: <p>I have the following struct.</p>
  
  <pre><code>struct ShaderObject
  {
      const GLchar* File;
      ShaderType Type;
      GLuint Shader;
      ShaderObject(const GLchar* File, ShaderType Type);
  };
  </code></pre>
  
  <p>And this type of map.</p>
  
  <pre><code>typedef map&lt;string, ShaderObject&gt; Shaders;
  </code></pre>
  
  <p>The compiler gives me an error, linking to the implementation of <code>map</code>.</p>
  
  <pre><code> Error 1 error C2512: 'ShaderObject::ShaderObject': No appropriate default constructor
   available c:\program files (x86)\microsoft visual studio 11.0\vc\include\map 198 1
  </code></pre>
  
  <p><strong>I don't understand the error. How can I fix it?</strong> Because I never had an error like this before and I can't explain, I am not sure which informations you will need. Please feel free to ask for details! <strong>Thanks a lot!</strong></p>