Macros to disallow class copy and assignment. Google -vs- Qt
<p>To disallow copying or assigning a class it's common practice to make the copy constructor 
and assignment operator private. Both Google and Qt have macros to make this easy and visible.
These macros are:</p>

<p>Google:</p>

<pre><code>#define DISALLOW_COPY_AND_ASSIGN(TypeName) \
  TypeName(const TypeName&amp;);   \
  void operator=(const TypeName&amp;)
</code></pre>

<p>Qt: </p>

<pre><code>#define Q__DISABLE_COPY(Class) \
  Class(const Class &amp;); \     
  Class &amp;operator=(const Class &amp;);
</code></pre>

<p>Questions: 
Why are the signatures of the two assignment operators different? It seems like the Qt version is correct.
What is the practical difference between the two?</p>
