title: Create unordered_map for CString as key
body: <p>I'm trying to create following unordered_map:</p>
  
  <pre><code>std::unordered_map&lt;CString, CString, std::function&lt;size_t(const CString &amp;data)&gt;&gt; usetResponse(100, [](const CString &amp;data)
      {
          return std::hash&lt;std::string&gt;()((LPCSTR)data);
      });
  </code></pre>
  
  <p>I provided hash function for CString, but compiler still returns errors:</p>
  
  <pre><code>error C2338: The C++ Standard doesn't provide a hash for this type. 
  
  error C2664: 'std::unordered_map&lt;CString,CString,std::hash&lt;_Kty&gt;,std::equal_to&lt;_Kty&gt;,std::allocator&lt;std::pair&lt;const
  _Kty,_Ty&gt;&gt;&gt;::unordered_map(std::initializer_list&lt;std::pair&lt;const _Kty,_Ty&gt;&gt;,unsigned int,const std::hash&lt;_Kty&gt; &amp;,const _Keyeq &amp;,const std::allocator&lt;std::pair&lt;const _Kty,_Ty&gt;&gt; &amp;)' : cannot convert argument 1 from 'std::unordered_map&lt;CString,CString,std::function&lt;size_t (const CString &amp;)&gt;,std::equal_to&lt;_Kty&gt;,std::allocator&lt;std::pair&lt;const
  _Kty,_Ty&gt;&gt;&gt;' to 'const std::unordered_map&lt;CString,CString,std::hash&lt;_Kty&gt;,std::equal_to&lt;_Kty&gt;,std::allocator&lt;std::pair&lt;const
  _Kty,_Ty&gt;&gt;&gt; &amp;'
  </code></pre>
  
  <p>Please tell me what I'm doing wrong ?</p>