title: How does Qt handle call-by-reference for signals and slots?
body: <p>I have several questions about signals and slots. I am using Qt 4.8.</p>
  
  <ol>
  <li><p>Do signals and slots have to be void functions? A signal is of course no function, but it is declared like a normal member function.</p></li>
  <li><p>I often use call-by-const-reference to avoid creating too many copies of objects. Can I use call-by-const-reference with signals and slots? The object which was sent could go out of scope after the emission of the signal. Or does the signal store a copy of what was sent? Then call-by-const-reference would be the same as call-by-value.</p></li>
  <li><p>What if the slot manipulates the object it got via call-by-reference from the sender? Does the sender notice this?</p></li>
  <li><p>It is possible to force the signal to wait until the connected slots have finished? How do I do that?</p></li>
  </ol>