title: Operator overload requires parenthesis
body: <p>I have overloaded both <code>&amp;</code> and <code>*</code>.  If I do this:</p>
  
  <p><code>hgh=(xxx&amp;yy)*vprod1;</code></p>
  
  <p>It works as expected.</p>
  
  <p>If I do this:</p>
  
  <p><code>hgh=xxx&amp;yy*vprod1;</code></p>
  
  <p>I get a compiler error <code>Invalid operands to binary expression.</code></p>
  
  <p>How does the compiler read this: <code>hgh=xxx&amp;yy*vprod1;</code> -- Wouldn't it move from left to right, just as in the above example, with parenthesis? If the parenthesis were located in a different part of the expression, I can understand how there could be differences in how the compiler read it, but why would that apply here?</p>
  
  <p>It should be worth noting that the return value of both overloads is identical, and returns the same type as <code>xx</code> and <code>yy</code> are in this calculation. </p>