title: What can cause ambiguous symbol errors on one computer and not another?
body: <p>I'm using Visual Studio 2010 to work on C++ code. The project and all its contents have been written by someone else, and copied onto a shared drive. When the creator builds it on his computer, it works fine. When I try to build the solution, I get a whole bunch of these errors </p>
  
  <pre><code>error C2872: '&lt;lambda0&gt;' : ambiguous symbol could be 
   '[File].cpp(66) : anonymous-namespace'::&lt;lambda0&gt;' or 
   '[Different file].h(549) : `anonymous-namespace'::&lt;lambda0&gt;'. 
  </code></pre>
  
  <p>Here's an example of a line which is said to be in error:</p>
  
  <pre><code>std::pair&lt;int, std::pair&lt;int, Point&gt;&gt; b) -&gt; bool { return (a.second.second &lt; b.second.second ); });
  </code></pre>
  
  <p>It seems like the error always occurs with a line which ends in '});'. The full code is rather enormous to show here, and it works on other computers, so presumably it's a problem with my settings or something. Can anybody hazard a guess as to what they may be?</p>