title: Can C++ compiler try different (template T) implementations until it finds one that compiles (for T)?
body: <pre><code>// First try this:
  
  template &lt;class T&gt; T Read(istream&amp; in) {
    T t;
    in &gt;&gt; t;
    return t;
  }
  
  // If there is no operator&gt;&gt;(istream&amp;, T) try this: 
  
  template &lt;class T&gt; T Read(istream&amp; in) {
    return T (in);
  }
  
  // If there is no constructor T(istream&amp;) try this:
  
  template &lt;class T&gt; T Read(istream&amp; in) {
    return T::OfStream (in);
  }
  
  // now fail.
  </code></pre>
  
  <p>Can this be implemented?</p>
  
  <p>If not, what are the alternatives?</p>