title: Function return type ambiguity on release and debug versions
body: <p>I have two projects on one solution;  say <em>Project1</em> and <em>Project2</em>. Project1 includes only abstarct classes and their implementations, and it is added as a referance to Project2. One of the functions, <em>Connect()</em> in <em>Class1</em> in Project1 is defined as follows;</p>
  
  <pre><code> public bool Connect() { ...TCP connection code }
  </code></pre>
  
  <p>On Project2, Connect function of <em>Object1</em> is called as; </p>
  
  <pre><code> if (carlValentin.Connect() != false) {...}
  </code></pre>
  
  <p>Visual Studio 2010 is used as IDE.<br>
  Here comes the oddness. When I choose <em>Debug</em> as configuration, everything goes fine, compilation is done and application runs. However, when I switch the configuration to <em>Release</em>, I get the following function return type error;<br>
  <code>Operator != cannot be applied to the operands of type void and bool</code>.   </p>
  
  <p>Project1 does not include any other overloaded methods for Connect function. As mentioned, Project2 is dependent into Project1. I suspect if it is a problem with the changes I made, since previous definition of Connect had void as return type. But I'm pretty sure that project build order is configured so that Project1 is compiled first and then Project2 is built.         </p>