title: Error in passing a structure as a key in multimap
body: <p>I am trying to create a multimap using multikey structure as a key and I am getting a error described below:</p>
  
  <p>Code:</p>
  
  <pre><code>struct stCont
  {
      long long Tok;
      char Reserved;
      long long Asset;
  }
  struct MultiKey {
  
      char InstrumentName[6];
      char Symbol[10];
      long long ExpiryDate;
  }
  std::multimap&lt;MultiKey, stCont&gt; cont_map;
  </code></pre>
  
  <p>error:</p>
  
  <pre><code>C:\Program Files\Microsoft Visual Studio 10.0\VC\INCLUDE\xfunctional:125: error: C2678: binary '&lt;' : no operator found which takes a left-hand operand of type 'const MultiKey' (or there is no acceptable conversion)
  C:\Qt\Qt5.0.2\5.0.2\msvc2010\include\QtCore/qchar.h(391): could be 'bool operator &lt;(QChar,QChar)' [found using argument-dependent lookup]
  C:\Qt\Qt5.0.2\5.0.2\msvc2010\include\QtCore/qbytearray.h(538): or       'bool operator &lt;(const QByteArray &amp;,const QByteArray &amp;)' [found using argument-dependent lookup]
  C:\Qt\Qt5.0.2\5.0.2\msvc2010\include\QtCore/qbytearray.h(540): or       'bool operator &lt;(const QByteArray &amp;,const char *)' [found using argument-dependent lookup]
  C:\Qt\Qt5.0.2\5.0.2\msvc2010\include\QtCore/qbytearray.h(542): or       'bool operator &lt;(const char *,const QByteArray &amp;)' [found using argument-dependent lookup]
  C:\Qt\Qt5.0.2\5.0.2\msvc2010\include\QtCore/qstring.h(565): or       'bool operator &lt;(const QString &amp;,const QString &amp;)' [found using argument-dependent lookup]
  C:\Qt\Qt5.0.2\5.0.2\msvc2010\include\QtCore/qstring.h(625): or       'bool operator &lt;(const char *,const QString &amp;)' [found using argument-dependent lookup]
  C:\Qt\Qt5.0.2\5.0.2\msvc2010\include\QtCore/qstring.h(632): or       'bool operator &lt;(const char *,const QStringRef &amp;)' [found using argument-dependent lookup]
  C:\Qt\Qt5.0.2\5.0.2\msvc2010\include\QtCore/qstring.h(975): or       'bool operator &lt;(QLatin1String,QLatin1String)' [found using argument-dependent lookup]
  C:\Qt\Qt5.0.2\5.0.2\msvc2010\include\QtCore/qstring.h(1032): or       'bool operator &lt;(const char *,QLatin1String)' [found using argument-dependent lookup]
  C:\Qt\Qt5.0.2\5.0.2\msvc2010\include\QtCore/qstring.h(1304): or       'bool operator &lt;(const QStringRef &amp;,const QStringRef &amp;)' [found using argument-dependent lookup]
  while trying to match the argument list '(const MultiKey, const MultiKey)'
  </code></pre>
  
  <p>I have written this code for myComp:</p>
  
  <pre><code>struct myComp
      {
         bool operator() (const MultiKey&amp; lhs, const MultiKey&amp; rhs)
         {
             if((lhs.ExpiryDate==rhs.ExpiryDate)&amp;&amp;(memcmp(lhs.InstrumentName,rhs.InstrumentName,6))&amp;&amp;(memcmp(lhs.Symbol,rhs.Symbol,10)))
             {
                 return 1;
             }
  
             return 0;
         }
      };
  </code></pre>
  
  <p>and now  i m getting an error:</p>
  
  <pre><code>C:\Program Files\Microsoft Visual Studio 10.0\VC\INCLUDE\xtree:1546: error: C3848: expression having type 'const myComp' would lose some const-volatile qualifiers in order to call 'bool myComp::operator ()(const MultiKey &amp;,const MultiKey &amp;)'
  </code></pre>