title: GCC "no matching function for call.." errors
body: <p>I am developing  a cross platform code base where the initial work is done using MS VC2010 compiler.Later I compile it on Linux with GCC (4.7).In many cases I am receiving :</p>
  
  <p><strong>"No matching function  for call .."</strong>  error  in GCC.I noticed that it complains mostly when method params are non constant references.For example this:</p>
  
  <pre><code> void MyClass::DoSomeWork(ObjectSP &amp;sprt, const std::string someName, const std::string anotherName, const std::string path, int index) {
  
  
          sprt-&gt;GetProp()-&gt;Update(path, false);
  
  }
  </code></pre>
  
  <p>Once I change the method to this:</p>
  
  <pre><code> void MyClass::DoSomeWork(const ObjectSP&amp; sprt, const std::string&amp; someName, const std::string&amp; anotherName, const std::string&amp; path, int index) {
  
  
          sprt-&gt;GetProp()-&gt;Update(path, false);
  
  }
  </code></pre>
  
  <p>GCC stops complaining.
  Why does it happen and why does it not happen in VC compilers?</p>