title: Clonable iterator trait object
body: <p>I'm trying to define a struct with a clonable iterator object. So far, I've reached to:</p>
  
  <pre><code>pub struct UseClonableIterator2&lt;'a,T:'a&gt; {
      it: &amp;'a (Iterator&lt;Item=T&gt; + Clone)
  }
  </code></pre>
  
  <p>Which does not compile because <code>Clone</code> is not a "builtin trait":</p>
  
  <pre><code>x.rs:2:33: 2:38 error: only the builtin traits can be used as closure or object bounds [E0225]
  x.rs:2     it: &amp;'a (Iterator&lt;Item=T&gt; + Clone)
                                         ^~~~~           
  x.rs:2:33: 2:38 help: run `rustc --explain E0225` to see a detailed explanation
  </code></pre>
  
  <p>One option might be to add another type parameter for the Iterator, but this complicates definitions and I'd rather avoid it.</p>