title: Deduce return type of operator/function for templates
body: <p>Is something like this possible?</p>
  
  <pre><code>// We can even assume T and U are native C++ types
  template&lt;typename T, typename U&gt;
  magically_deduce_return_type_of(T * U) my_mul() { return T * U; }
  </code></pre>
  
  <p>Or would somebody have to hack up a return_type struct and specialize it for every pair of native types?</p>