Question on predefined meanings for operators
<p>In "The C++ programming language", at page 265, the author makes the following statement:</p>

<blockquote>
  <p>Because of historical accident, the operators = (assignment), &amp; (address-of), and , (sequencing;
  §6.2.2) have predefined meanings when applied to class objects. These predefined meanings can
  be made inaccessible to general users by making them private:</p>
</blockquote>

<p>Then the following example is given:</p>

<pre><code>class X {
private:
 void operator=(const X&amp;);
 void operator&amp;();
 void operator,(const X&amp;);
 // ...
};

void f(X a, X b)
{
   a = b;  // error: operator= private
   &amp;a;     // error: operator&amp; private
   a,b;    // error: operator, private
}
</code></pre>

<p>I can't quite understand what do these "error" comments refer to? Does that mean I should not define a function like <code>f</code>, or that all of the <code>=</code>, <code>&amp;</code>, and <code>,</code> operators should be used according to the default way, and it is not necessary to redefine them?</p>
